[Javalist] UI prototipus keszites

István Viczián viczian.istvan at gmail.com
2013. Nov. 26., K, 20:36:05 CET


https://www.google.com/search?q=you+don%27t+say&tbm=isch
--
Viczián István


Gábor Garami <gabor.garami at hron.me> írta (2013. november 26. 18:07):
> Azert a Swing meg a web nagyon nem ugyanaz.
> Garami Gábor
> E-mail: gabor.garami at hron.me
> Tel: +36 20 235 9621
> MSN: hrgy at vipmail.hu
> Skype: hron84
>
>
> 2013/11/26 István Viczián <viczian.istvan at gmail.com>:
>> Üdv,
>>
>> Lehet, hogy nem értem, de most meg akarod csinálni, vagy csak
>> prototípust készítesz? Ha utóbbi, minek konvertálsz modellt?
>> Most csúnyát mondok, de prototipizáláshoz Delphi? Nem láttam még
>> eszközt, amiben olyan gyorsan lehet gui-t összerakni. Tény, hogy utána
>> dobhatod ki.
>> Vagy akár a NetBeans Swing-es rajzolójával megrajzolt felület?
>>
>> Üdv,
>> --
>> Viczián István
>>
>>
>> Böszörményi Péter <zmblevlist at gmail.com> írta (2013. november 26. 15:25):
>>> O, ez nagyon kedves toled, koszonom szepen. Mashol is talaltam megoldast
>>> erre, ott is az volt a gondolat, hogy atmasolgatom, a domain objektumkbol az
>>> adatokat a faba.
>>>
>>> Itt, a prototipizalas eseteben az adatok mindig rendelkezesre allnak a
>>> memoriaban, egy singleton objektum formajaban. Kb valahogy igy:
>>>
>>> public class Model {
>>>   private List<Room> rooms;
>>> //tipikus singleton kod
>>>   public List<Room> getRooms() {
>>>     return rooms;
>>>   }
>>>
>>>   public void addRom(Room room) {
>>>     rooms.add(room);
>>>   }
>>> }
>>>
>>> Egy Room kb igy nezne ki:
>>>
>>> public class Room {
>>>   private String name;
>>>   //getter, setter
>>>   private List<Employee> employees
>>>
>>>   public List<Emplotyee> getEmployees() {
>>>     return employees;
>>>   }
>>>
>>>   public void addEmployee(Employee employee) {
>>>     employees.add(employee);
>>>   }
>>> }
>>>
>>> Swinges JTree eseteben a TreeModel siman csak egy adapter lenne, ami
>>> illeszti ezeket az objektumokat a JTreehez, igy az objektumokon vegrehajtott
>>> muvelet automatice a JTree megvaltozasaval jart (talan csak valamilyen model
>>> changed fuggvenyt kell hozza meghivni, nem emlekszem pontosan).
>>>
>>> Ugy gondoltam, hogy hasonlo modon probalok itt is eljarni. Ehhez viszont,
>>> ahogy eszre vettem, az AbstractContainerbol kellett volna kiindulnom, plussz
>>> meg jott volna hozza a Hierarchial (vagy mi) interface, ami egy csomo
>>> implementalando fuggvenyt jelentene. Itt mondtam azt magamba, hogy ez a
>>> prototipizalasra mar nem fer bele, es ekkor mondtam azt, hogy itt
>>> korbekerdezek.
>>>
>>> Lehet, hogy rossz volt az ut, amit valasztottam.
>>>
>>>
>>>
>>> On 2013-11-26 14:58, cx.chico wrote:
>>>>
>>>> Ha adsz neki egy kis esély, én adok neked egy kis segítséget :)
>>>>
>>>> Így kell feltölteni egy Tree-hez való konténert:
>>>>
>>>> --->8----
>>>> package gui.data;
>>>>
>>>> import java.util.List;
>>>>
>>>> import com.vaadin.data.Item;
>>>> import com.vaadin.data.util.HierarchicalContainer;
>>>> import com.vaadin.server.ExternalResource;
>>>> import com.vaadin.server.Resource;
>>>>
>>>> public class EmployeeTreeDS extends HierarchicalContainer {
>>>> public final static String COLUMN_CAPTION = "caption";
>>>> public final static String COLUMN_ICON = "icon";
>>>> public final static String COLUMN_ICON_URL = "iconUrl";
>>>> public final static String COLUMN_DATA = "data";
>>>>
>>>> /**
>>>> * Default constructor.
>>>> */
>>>> public EmployeeTreeDS() {
>>>> addContainerProperty(COLUMN_ICON, Resource.class, null);
>>>> addContainerProperty(COLUMN_CAPTION, String.class, "");
>>>> addContainerProperty(COLUMN_DATA, Employee.class, null);
>>>> addContainerProperty(COLUMN_ICON_URL, String.class, null);
>>>> }
>>>>
>>>> /**
>>>> *
>>>> * @param employees
>>>> * @param manager
>>>> */
>>>> @SuppressWarnings("unchecked")
>>>> public void addEmployees(List<Employee> employees, String rootName) {
>>>> removeAllItems();
>>>>
>>>> Item root = addItem(rootName);
>>>> root.getItemProperty(COLUMN_CAPTION).setValue(rootName);
>>>> setChildrenAllowed(rootName, true);
>>>> setParent(rootName, null);
>>>>
>>>> for (Employee employee : employees) {
>>>> if (employee == null) {
>>>> continue;
>>>> }
>>>> EmployeeCategoryRelation category = employee.getLatestCategory();
>>>> String businessBranchName = category.getBusinessBranchDescr();
>>>>
>>>> Item parent = getItem(businessBranchName);
>>>> if (parent == null) {
>>>> parent = addItem(businessBranchName);
>>>> parent.getItemProperty(COLUMN_CAPTION).setValue(businessBranchName);
>>>> setChildrenAllowed(businessBranchName, true);
>>>> setParent(businessBranchName, rootName);
>>>> }
>>>>
>>>>   /*
>>>> EZ A KULCS, itt adod meg, hogy a tree hogyan azonosítsa be az egyes
>>>> munkaválllókat, hogy később tudd, hogy melyiket választotta ki a GUI-n
>>>> */
>>>> Item item = addItem(employee.getId());
>>>>
>>>> if (item == null) {
>>>> // TODO log
>>>> } else {
>>>> (...)
>>>> item.getItemProperty(COLUMN_CAPTION).setValue(employee.getFullName());
>>>> item.getItemProperty(COLUMN_DATA).setValue(employee);
>>>>
>>>> setChildrenAllowed(employee.getId(), false);
>>>> setParent(employee.getId(), businessBranchName);
>>>> }
>>>> }
>>>> }
>>>>
>>>> /**
>>>> * Returns the caption of the tree leaf.
>>>> *
>>>> * @param employee
>>>> * @return
>>>> */
>>>> protected String createCaption(Employee employee) {
>>>> StringBuilder sb = new StringBuilder();
>>>> sb.append("<span
>>>> class=\"name\">").append(employee.getFullName()).append("</span>");
>>>> sb.append("<span class=\"info\">");
>>>>
>>>> if (employee.getLatestCategory() != null) {
>>>> sb.append(employee.getLatestCategoryDescription());
>>>> } else {
>>>> sb.append("?");
>>>> }
>>>>
>>>> sb.append("</span>");
>>>>
>>>> return sb.toString();
>>>> }
>>>> }
>>>>
>>>> --->8----
>>>>
>>>> Így lehet a Tree-t létrehozni:
>>>>
>>>>
>>>> (...)
>>>>                  private Tree employeeTree;
>>>> private EmployeeTreeDS employeeTreeDS;
>>>> (...)
>>>> employeeTree = new Tree();
>>>> employeeTreeDS = new EmployeeTreeDS();
>>>>
>>>> employeeTree.setContainerDataSource(employeeTreeDS);
>>>> employeeTree.setItemCaptionMode(ItemCaptionMode.PROPERTY);
>>>> employeeTree.setItemCaptionPropertyId(EmployeeTreeDS.COLUMN_CAPTION);
>>>> employeeTree.setItemIconPropertyId(EmployeeTreeDS.COLUMN_ICON);
>>>> (...)
>>>>
>>>>
>>>> Így lehet feltölteni a Tree-t:
>>>>
>>>> (...)
>>>> List<Employee> list = (... call persistence layer for data ...) ;
>>>> employeeTreeDS.removeAllItems();
>>>> if (list != null) {
>>>> employeeTreeDS.addEmployees(list, "COMPANY");
>>>> }
>>>> (...)
>>>>
>>>>
>>>> A select item esemény elkapása:
>>>>
>>>> http://dev.vaadin.com/svn/demo/sampler/src/com/vaadin/demo/sampler/features/trees/TreeSingleSelectExample.java
>>>>
>>>> Remélem, segítettem valamit.
>>>>
>>>> Üdv,
>>>> Chico
>>>>
>>>>
>>>>
>>>> 2013. november 26. 14:05 Böszörményi Péter írta, <zmblevlist at gmail.com
>>>> <mailto:zmblevlist at gmail.com>>:
>>>>
>>>>
>>>>     A vaadin mar felmerult mashol is, bele is porgettem egy kicsit, ami
>>>>     problema volt az pont a fa feltoltese. A hatterben egy singleton
>>>>     objektum allt, o lett volna hivatott a domain modelt prezentalni,
>>>>     ezt akartam volna a faban megjeleniteni. Azt lattam, hogy
>>>>     databindinggel ezt meg lehetne oldani, csak kicsit elszomoritott,
>>>>     hogy mennyi fuggvenyt kellene hozza megvalositani, hogy mukodjon.
>>>>     Asszem, adok neki megegy eselyt kesobb, mert egyebkent szimpatikus
>>>> volt.
>>>>
>>>>
>>>>     On 2013-11-26 12:13, cx.chico wrote:
>>>>
>>>>         Ha kód-generálásra is szükséged van és nem félsz a gwt-től és -
>>>>         gondolom
>>>>         - valamikor majd adatbázist is akarsz használni, akkor
>>>>         megpróbálhatod a
>>>>         Vaadin-t. Eclipse plugin formában van hozzá saját UI editor,
>>>>         komponensekkel kell dolgozni (layout, gombok, listák, tree,
>>>>         átméretezés,
>>>>         stb. Persze ez a plugin nem tökéletes, de viszonylag gyorsan
>>>>         lehet vele
>>>>         alap képernyőket összekattingatni - és browser-ben működik is.
>>>>
>>>>         Ha ennél általánosabb UI tervezőre van szükséged, javaslom a
>>>> MockUp
>>>>         Builder-t (http://mockupbuilder.com). Ez egy böngészőben
>>>> használható
>>>>         tervező eszköz, amelyben előre ki vannak alakítva a komponensek
>>>>         az egyes
>>>>         platformokra (android, ios, metro/win8, web, stb).
>>>>
>>>>         Üdv,
>>>>         Chico
>>>>
>>>>
>>>>
>>>>         2013. november 26. 11:13 Dénes Medzihradszky írta,
>>>>         <medzihradszky.denes at gmail.com
>>>>         <mailto:medzihradszky.denes at gmail.com>
>>>>         <mailto:medzihradszky.denes at __gmail.com
>>>>
>>>>         <mailto:medzihradszky.denes at gmail.com>>>:
>>>>
>>>>
>>>>              Ezt mi általában html-be álmodjuk web esetén, majd utána a
>>>>         dizájner
>>>>              összerakja grafikusan. Egyszerű CSS mögötte, és máris mutat
>>>>         valamit.
>>>>              Némi js és máris tudsz megjelenő/eltűnő dizájn részeket
>>>>         hozzárakni -
>>>>              más nyelv nem is kell mögé.
>>>>
>>>>              Dénes
>>>>
>>>>              2013/11/26 Böszörményi Péter <zmblevlist at gmail.com
>>>>         <mailto:zmblevlist at gmail.com>
>>>>              <mailto:zmblevlist at gmail.com
>>>> <mailto:zmblevlist at gmail.com>>>__:
>>>>
>>>>
>>>>               > Udv a listanak!
>>>>               >
>>>>               > Egy aprocska munkam kapcsan megalmodtam par felhasznaloi
>>>>              feluletet. Mielott
>>>>               > nekiallok megvalositani, ki szeretnem probalni, hogy
>>>>         mennyire
>>>>               > kenyelmes/kenyelmetlen hasznalat kozben. Ehhez keresnek
>>>>         valami
>>>>              megoldast,
>>>>               > aminek segitsegevel gyorsan tudok mukodo UI prototipust
>>>>              kesziteni. Kb. ezek
>>>>               > a szempontok lennenek:
>>>>               >
>>>>               > - Web feluletek prototipizalasat szeretnem vele csinalni.
>>>>               > - A fokusz kifejezetten az UI-n van, nagyon buta szerver
>>>>         oldali
>>>>              logika
>>>>               > kerulne moge.
>>>>               > - Nem erdekel a design, nezzen ki valahogy. Aztan, hogy
>>>>         ezt a
>>>>              legtrendibb
>>>>               > HTML5-el eri el, vagy tablazat + spacer gif, az mar az o
>>>>         maganugye
>>>>               > - A felhasznaloi komponensek hasznalata egyszeru legyen,
>>>> ne
>>>>              kelljen pl. 1
>>>>               > orat eltoltenem azzal, hogy egy fa komponensbe
>>>>         belegyomoszoljem
>>>>               > megjelenitendo adatokat.
>>>>               > - Preferalt nyelvek: Java, Groovy, PHP, de johet mas is,
>>>>         legrosszabb
>>>>               > megtanulom oket.
>>>>               >
>>>>               > Kivancsi vagyok a velemenyekre, ki mivel csinal ilyesmit?
>>>>               >
>>>>               > --
>>>>               > Üdvözlettel,
>>>>               > Böszörményi Péter
>>>>               > _________________________________________________
>>>>
>>>>               > Javalist mailing list
>>>>               > Javalist at lists.javaforum.hu
>>>>         <mailto:Javalist at lists.javaforum.hu>
>>>>         <mailto:Javalist at lists.__javaforum.hu
>>>>         <mailto:Javalist at lists.javaforum.hu>>
>>>>
>>>>               > http://lists.javaforum.hu/__mailman/listinfo/javalist
>>>>         <http://lists.javaforum.hu/mailman/listinfo/javalist>
>>>>              _________________________________________________
>>>>
>>>>              Javalist mailing list
>>>>         Javalist at lists.javaforum.hu <mailto:Javalist at lists.javaforum.hu>
>>>>         <mailto:Javalist at lists.__javaforum.hu
>>>>         <mailto:Javalist at lists.javaforum.hu>>
>>>>
>>>>         http://lists.javaforum.hu/__mailman/listinfo/javalist
>>>>         <http://lists.javaforum.hu/mailman/listinfo/javalist>
>>>>
>>>>
>>>>
>>>>
>>>>         _________________________________________________
>>>>
>>>>         Javalist mailing list
>>>>         Javalist at lists.javaforum.hu <mailto:Javalist at lists.javaforum.hu>
>>>>         http://lists.javaforum.hu/__mailman/listinfo/javalist
>>>>
>>>>         <http://lists.javaforum.hu/mailman/listinfo/javalist>
>>>>
>>>>
>>>>
>>>>     --
>>>>     Üdvözlettel,
>>>>     Böszörményi Péter
>>>>     _________________________________________________
>>>>
>>>>     Javalist mailing list
>>>>     Javalist at lists.javaforum.hu <mailto:Javalist at lists.javaforum.hu>
>>>>     http://lists.javaforum.hu/__mailman/listinfo/javalist
>>>>
>>>>     <http://lists.javaforum.hu/mailman/listinfo/javalist>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Javalist mailing list
>>>> Javalist at lists.javaforum.hu
>>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>>
>>>
>>>
>>> --
>>> Üdvözlettel,
>>> Böszörményi Péter
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at lists.javaforum.hu
>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist


További információk a(z) Javalist levelezőlistáról