[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