<div dir="ltr">Ha adsz neki egy kis esély, én adok neked egy kis segítséget :)<div><br></div><div>Így kell feltölteni egy Tree-hez való konténert:</div><div><br></div><div>---&gt;8----</div><div><div>package gui.data;</div>
<div><br></div><div>import java.util.List;</div><div><br></div><div>import com.vaadin.data.Item;</div><div>import com.vaadin.data.util.HierarchicalContainer;</div><div>import com.vaadin.server.ExternalResource;</div><div>
import com.vaadin.server.Resource;</div><div><br></div><div>public class EmployeeTreeDS extends HierarchicalContainer {</div><div><span class="" style="white-space:pre">        </span>public final static String COLUMN_CAPTION = &quot;caption&quot;;<br>
</div><div><span class="" style="white-space:pre">        </span>public final static String COLUMN_ICON = &quot;icon&quot;;</div><div><span class="" style="white-space:pre">        </span>public final static String COLUMN_ICON_URL = &quot;iconUrl&quot;;</div>
<div><span class="" style="white-space:pre">        </span>public final static String COLUMN_DATA = &quot;data&quot;;</div><div><br></div><div><span class="" style="white-space:pre">        </span>/**</div><div><span class="" style="white-space:pre">        </span> * Default constructor.</div>
<div><span class="" style="white-space:pre">        </span> */</div><div><span class="" style="white-space:pre">        </span>public EmployeeTreeDS() {</div><div><span class="" style="white-space:pre">                </span>addContainerProperty(COLUMN_ICON, Resource.class, null);</div>
<div><span class="" style="white-space:pre">                </span>addContainerProperty(COLUMN_CAPTION, String.class, &quot;&quot;);</div><div><span class="" style="white-space:pre">                </span>addContainerProperty(COLUMN_DATA, Employee.class, null);</div>
<div><span class="" style="white-space:pre">                </span>addContainerProperty(COLUMN_ICON_URL, String.class, null);</div><div><span class="" style="white-space:pre">        </span>}</div><div><br></div><div><span class="" style="white-space:pre">        </span>/**</div>
<div><span class="" style="white-space:pre">        </span> * </div><div><span class="" style="white-space:pre">        </span> * @param employees</div><div><span class="" style="white-space:pre">        </span> * @param manager</div><div><span class="" style="white-space:pre">        </span> */</div>
<div><span class="" style="white-space:pre">        </span>@SuppressWarnings(&quot;unchecked&quot;)</div><div><span class="" style="white-space:pre">        </span>public void addEmployees(List&lt;Employee&gt; employees, String rootName) {</div>
<div><span class="" style="white-space:pre">                </span>removeAllItems();</div><div><br></div><div><span class="" style="white-space:pre">                </span>Item root = addItem(rootName);</div><div><span class="" style="white-space:pre">                </span>root.getItemProperty(COLUMN_CAPTION).setValue(rootName);</div>
<div><span class="" style="white-space:pre">                </span>setChildrenAllowed(rootName, true);</div><div><span class="" style="white-space:pre">                </span>setParent(rootName, null);</div><div><br></div><div><span class="" style="white-space:pre">                </span>for (Employee employee : employees) {</div>
<div><span class="" style="white-space:pre">                        </span>if (employee == null) {</div><div><span class="" style="white-space:pre">                                </span>continue;</div><div><span class="" style="white-space:pre">                        </span>}</div><div><span class="" style="white-space:pre">                        </span>EmployeeCategoryRelation category = employee.getLatestCategory();</div>
<div><span class="" style="white-space:pre">                        </span>String businessBranchName = category.getBusinessBranchDescr();</div><div><br></div><div><span class="" style="white-space:pre">                        </span>Item parent = getItem(businessBranchName);</div>
<div><span class="" style="white-space:pre">                        </span>if (parent == null) {</div><div><span class="" style="white-space:pre">                                </span>parent = addItem(businessBranchName);</div><div><span class="" style="white-space:pre">                                </span>parent.getItemProperty(COLUMN_CAPTION).setValue(businessBranchName);</div>
<div><span class="" style="white-space:pre">                                </span>setChildrenAllowed(businessBranchName, true);</div><div><span class="" style="white-space:pre">                                </span>setParent(businessBranchName, rootName);</div><div><span class="" style="white-space:pre">                        </span>}</div>
<div><br></div><div> /* </div><div>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</div><div>*/</div><div><span class="" style="white-space:pre">                        </span>Item item = addItem(employee.getId());</div>
<div><br></div><div><span class="" style="white-space:pre">                        </span>if (item == null) {</div><div><span class="" style="white-space:pre">                                </span>// TODO log</div><div><span class="" style="white-space:pre">                        </span>} else {</div>
<div>(...)</div><div><span class="" style="white-space:pre">                                </span>item.getItemProperty(COLUMN_CAPTION).setValue(employee.getFullName());</div><div><span class="" style="white-space:pre">                                </span>item.getItemProperty(COLUMN_DATA).setValue(employee);</div>
<div><br></div><div><span class="" style="white-space:pre">                                </span>setChildrenAllowed(employee.getId(), false);</div><div><span class="" style="white-space:pre">                                </span>setParent(employee.getId(), businessBranchName);</div>
<div><span class="" style="white-space:pre">                        </span>}</div><div><span class="" style="white-space:pre">                </span>}</div><div><span class="" style="white-space:pre">        </span>}</div><div><br></div><div><span class="" style="white-space:pre">        </span>/**</div>
<div><span class="" style="white-space:pre">        </span> * Returns the caption of the tree leaf.</div><div><span class="" style="white-space:pre">        </span> * </div><div><span class="" style="white-space:pre">        </span> * @param employee</div>
<div><span class="" style="white-space:pre">        </span> * @return</div><div><span class="" style="white-space:pre">        </span> */</div><div><span class="" style="white-space:pre">        </span>protected String createCaption(Employee employee) {</div>
<div><span class="" style="white-space:pre">                </span>StringBuilder sb = new StringBuilder();</div><div><span class="" style="white-space:pre">                </span>sb.append(&quot;&lt;span class=\&quot;name\&quot;&gt;&quot;).append(employee.getFullName()).append(&quot;&lt;/span&gt;&quot;);</div>
<div><span class="" style="white-space:pre">                </span>sb.append(&quot;&lt;span class=\&quot;info\&quot;&gt;&quot;);</div><div><br></div><div><span class="" style="white-space:pre">                </span>if (employee.getLatestCategory() != null) {</div>
<div><span class="" style="white-space:pre">                        </span>sb.append(employee.getLatestCategoryDescription());</div><div><span class="" style="white-space:pre">                </span>} else {</div><div><span class="" style="white-space:pre">                        </span>sb.append(&quot;?&quot;);</div>
<div><span class="" style="white-space:pre">                </span>}</div><div><br></div><div><span class="" style="white-space:pre">                </span>sb.append(&quot;&lt;/span&gt;&quot;);</div><div><br></div><div><span class="" style="white-space:pre">                </span>return sb.toString();</div>
<div><span class="" style="white-space:pre">        </span>}</div><div>}</div></div><div><br></div><div>---&gt;8----<br></div><div><br></div><div>Így lehet a Tree-t létrehozni:</div><div><div><br></div><div><br></div></div><div>
(...)</div><div>                private Tree employeeTree;</div><div><span class="" style="white-space:pre">                private </span>EmployeeTreeDS employeeTreeDS;</div><div><span class="" style="white-space:pre">(...)</span></div>
<div><span class="" style="white-space:pre">                e</span>mployeeTree = new Tree();<br></div><div><div><span class="" style="white-space:pre">                e</span>mployeeTreeDS = new EmployeeTreeDS();</div></div><div><br></div>
<div><div><span class="" style="white-space:pre">                </span>employeeTree.setContainerDataSource(employeeTreeDS);</div><div><span class="" style="white-space:pre">                </span>employeeTree.setItemCaptionMode(ItemCaptionMode.PROPERTY);</div>
<div><span class="" style="white-space:pre">                </span>employeeTree.setItemCaptionPropertyId(EmployeeTreeDS.COLUMN_CAPTION);</div><div><span class="" style="white-space:pre">                </span>employeeTree.setItemIconPropertyId(EmployeeTreeDS.COLUMN_ICON);</div>
</div><div>(...)</div><div><br></div><div><br></div><div>Így lehet feltölteni a Tree-t:</div><div><br></div><div>(...)</div><div><div><span class="" style="white-space:pre">        </span>List&lt;Employee&gt; list = (... call persistence layer for data ...) ;<br>
</div><div><span class="" style="white-space:pre">        </span>employeeTreeDS.removeAllItems();</div><div><span class="" style="white-space:pre">        </span>if (list != null) {</div><div><span class="" style="white-space:pre">                </span>employeeTreeDS.addEmployees(list, &quot;COMPANY&quot;);</div>
<div><span class="" style="white-space:pre">        </span>}</div></div><div>(...) </div><div><br></div><div><br></div><div>A select item esemény elkapása:  <a href="http://dev.vaadin.com/svn/demo/sampler/src/com/vaadin/demo/sampler/features/trees/TreeSingleSelectExample.java">http://dev.vaadin.com/svn/demo/sampler/src/com/vaadin/demo/sampler/features/trees/TreeSingleSelectExample.java</a></div>
<div><br></div><div>Remélem, segítettem valamit.</div><div><br></div><div>Üdv,</div><div>Chico</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013. november 26. 14:05 Böszörményi Péter írta, <span dir="ltr">&lt;<a href="mailto:zmblevlist@gmail.com" target="_blank">zmblevlist@gmail.com</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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.<div class="im">
<br>
<br>
On 2013-11-26 12:13, cx.chico wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Ha kód-generálásra is szükséged van és nem félsz a gwt-től és - gondolom<br>
- valamikor majd adatbázist is akarsz használni, akkor megpróbálhatod a<br>
Vaadin-t. Eclipse plugin formában van hozzá saját UI editor,<br>
komponensekkel kell dolgozni (layout, gombok, listák, tree, átméretezés,<br>
stb. Persze ez a plugin nem tökéletes, de viszonylag gyorsan lehet vele<br>
alap képernyőket összekattingatni - és browser-ben működik is.<br>
<br>
Ha ennél általánosabb UI tervezőre van szükséged, javaslom a MockUp<br>
Builder-t (<a href="http://mockupbuilder.com" target="_blank">http://mockupbuilder.com</a>). Ez egy böngészőben használható<br>
tervező eszköz, amelyben előre ki vannak alakítva a komponensek az egyes<br>
platformokra (android, ios, metro/win8, web, stb).<br>
<br>
Üdv,<br>
Chico<br>
<br>
<br>
<br>
2013. november 26. 11:13 Dénes Medzihradszky írta,<br></div>
&lt;<a href="mailto:medzihradszky.denes@gmail.com" target="_blank">medzihradszky.denes@gmail.com</a> &lt;mailto:<a href="mailto:medzihradszky.denes@gmail.com" target="_blank">medzihradszky.denes@<u></u>gmail.com</a>&gt;&gt;:<div class="im">
<br>
<br>
    Ezt mi általában html-be álmodjuk web esetén, majd utána a dizájner<br>
    összerakja grafikusan. Egyszerű CSS mögötte, és máris mutat valamit.<br>
    Némi js és máris tudsz megjelenő/eltűnő dizájn részeket hozzárakni -<br>
    más nyelv nem is kell mögé.<br>
<br>
    Dénes<br>
<br>
    2013/11/26 Böszörményi Péter &lt;<a href="mailto:zmblevlist@gmail.com" target="_blank">zmblevlist@gmail.com</a><br></div>
    &lt;mailto:<a href="mailto:zmblevlist@gmail.com" target="_blank">zmblevlist@gmail.com</a>&gt;&gt;<u></u>:<div><div class="h5"><br>
     &gt; Udv a listanak!<br>
     &gt;<br>
     &gt; Egy aprocska munkam kapcsan megalmodtam par felhasznaloi<br>
    feluletet. Mielott<br>
     &gt; nekiallok megvalositani, ki szeretnem probalni, hogy mennyire<br>
     &gt; kenyelmes/kenyelmetlen hasznalat kozben. Ehhez keresnek valami<br>
    megoldast,<br>
     &gt; aminek segitsegevel gyorsan tudok mukodo UI prototipust<br>
    kesziteni. Kb. ezek<br>
     &gt; a szempontok lennenek:<br>
     &gt;<br>
     &gt; - Web feluletek prototipizalasat szeretnem vele csinalni.<br>
     &gt; - A fokusz kifejezetten az UI-n van, nagyon buta szerver oldali<br>
    logika<br>
     &gt; kerulne moge.<br>
     &gt; - Nem erdekel a design, nezzen ki valahogy. Aztan, hogy ezt a<br>
    legtrendibb<br>
     &gt; HTML5-el eri el, vagy tablazat + spacer gif, az mar az o maganugye<br>
     &gt; - A felhasznaloi komponensek hasznalata egyszeru legyen, ne<br>
    kelljen pl. 1<br>
     &gt; orat eltoltenem azzal, hogy egy fa komponensbe belegyomoszoljem<br>
     &gt; megjelenitendo adatokat.<br>
     &gt; - Preferalt nyelvek: Java, Groovy, PHP, de johet mas is, legrosszabb<br>
     &gt; megtanulom oket.<br>
     &gt;<br>
     &gt; Kivancsi vagyok a velemenyekre, ki mivel csinal ilyesmit?<br>
     &gt;<br>
     &gt; --<br>
     &gt; Üdvözlettel,<br>
     &gt; Böszörményi Péter<br>
     &gt; ______________________________<u></u>_________________<br>
     &gt; Javalist mailing list<br></div></div>
     &gt; <a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a> &lt;mailto:<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.<u></u>javaforum.hu</a>&gt;<div class="im">
<br>
     &gt; <a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/<u></u>mailman/listinfo/javalist</a><br>
    ______________________________<u></u>_________________<br>
    Javalist mailing list<br></div>
    <a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a> &lt;mailto:<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.<u></u>javaforum.hu</a>&gt;<div class="im">
<br>
    <a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/<u></u>mailman/listinfo/javalist</a><br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/<u></u>mailman/listinfo/javalist</a><br>
<br>
</div></blockquote><div class="HOEnZb"><div class="h5">
<br>
<br>
-- <br>
Üdvözlettel,<br>
Böszörményi Péter<br>
______________________________<u></u>_________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/<u></u>mailman/listinfo/javalist</a><br>
</div></div></blockquote></div><br></div>