[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