[Javalist] UI prototipus keszites

István Viczián viczian.istvan at gmail.com
2013. Nov. 26., K, 16:34:32 CET


Ü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


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