[Javalist] UI prototipus keszites

Böszörményi Péter zmblevlist at gmail.com
2013. Nov. 26., K, 18:55:47 CET


Ez igaz, de erdemes idonkent a kovetelmenyeket felulvizsgalni, hatha 
azoknak a lazitasaval megtalaljuk a szamunkra alkalmas megoldast.
Mivel ebben az esetben kifejezetten azt akarom kiprobalni, hogy mennyire 
lehet kenyelmesen dolgozni a felulettel, lehet hogy a webnek mint 
kriteriumnak itt annyira nincs letjogosultsaga.

On 2013-11-26 18:07, Gábor Garami wrote:
> 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
>


-- 
Üdvözlettel,
Böszörményi Péter


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