[Javalist] UI prototipus keszites
cx.chico
cx.chico at gmail.com
2013. Nov. 26., K, 14:58:38 CET
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>:
> 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>>:
>>
>>
>> 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>>:
>>
>> > 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>
>>
>> > 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
>>
>>
>>
>>
>> _______________________________________________
>> 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
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20131126/9fc34d17/attachment.html>
További információk a(z) Javalist levelezőlistáról