/trunk/src/org/tela_botanica/client/vues/PanneauPrincipalVue.java |
---|
File deleted |
\ No newline at end of file |
/trunk/src/org/tela_botanica/client/vues/PanneauMenu.java |
---|
New file |
0,0 → 1,109 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.CoelMediateur; |
import com.extjs.gxt.ui.client.Style.HorizontalAlignment; |
import com.extjs.gxt.ui.client.Style.Orientation; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.SelectionListener; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Info; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.button.Button; |
import com.extjs.gxt.ui.client.widget.form.FormPanel; |
import com.extjs.gxt.ui.client.widget.form.TextField; |
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign; |
import com.extjs.gxt.ui.client.widget.layout.ColumnData; |
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout; |
import com.extjs.gxt.ui.client.widget.layout.FlowLayout; |
import com.extjs.gxt.ui.client.widget.layout.FormLayout; |
import com.extjs.gxt.ui.client.widget.layout.RowData; |
import com.extjs.gxt.ui.client.widget.layout.RowLayout; |
public class PanneauMenu extends ContentPanel { |
public PanneauMenu(CoelMediateur coelMediateur) { |
setHeaderVisible(false); |
setLayout(new RowLayout()); |
// Panneau de Recherche Globale |
FormPanel simple = new FormPanel(); |
simple.setHeading("Recherche globale"); |
simple.setFrame(true); |
simple.setCollapsible(true); |
simple.setButtonAlign(HorizontalAlignment.CENTER); |
simple.setLayout(new FlowLayout()); |
LayoutContainer main = new LayoutContainer(); |
//main.setWidth(450); |
main.setLayout(new ColumnLayout()); |
LayoutContainer left = new LayoutContainer(); |
FormLayout layout = new FormLayout(); |
layout.setLabelAlign(LabelAlign.LEFT); |
left.setLayout(layout); |
TextField<String> first = new TextField<String>(); |
first.setFieldLabel("Rechercher"); |
left.add(first); |
LayoutContainer right = new LayoutContainer(); |
layout = new FormLayout(); |
layout.setLabelAlign(LabelAlign.LEFT); |
right.setLayout(layout); |
Button ok = new Button("OK"); |
right.add(ok); |
main.add(left, new ColumnData(.8)); |
main.add(right, new ColumnData(.2)); |
simple.add(main); |
add(simple, new RowData(1, -1, new Margins(0))); |
// Panneau de menu |
ContentPanel panneauMenu = new ContentPanel(); |
panneauMenu.setHeading("Menu"); |
panneauMenu.setLayout(new RowLayout(Orientation.VERTICAL)); |
panneauMenu.setFrame(true); |
panneauMenu.setCollapsible(false); |
SelectionListener listener = new SelectionListener<ComponentEvent>() { |
public void componentSelected(ComponentEvent ce) { |
Button btn = (Button) ce.component; |
//btn.disable(); |
Info.display("Évènement", "Chargement des '{0}' en cours.", btn.getText()); |
} |
}; |
Button institution = new Button("Institutions", listener); |
panneauMenu.add(institution, new RowData(20, -1, new Margins(4))); |
Button collection = new Button("Collections", listener); |
panneauMenu.add(collection, new RowData(20, -1, new Margins(4))); |
Button personne = new Button("Personnes", listener); |
panneauMenu.add(personne, new RowData(20, -1, new Margins(4))); |
Button publication = new Button("Publications", listener); |
panneauMenu.add(publication, new RowData(20, -1, new Margins(4))); |
add(panneauMenu, new RowData(1, 1, new Margins(0))); |
} |
private void addTab(String nom) { |
/* |
TabItem item = new TabItem(); |
item.setText(nom); |
item.setClosable(index != 1); |
item.addText("Tab Body " + index); |
item.addStyleName("pad-text"); |
advanced.add(item);//*/ |
} |
} |
/trunk/src/org/tela_botanica/client/vues/InstitutionMenuVue.java |
---|
New file |
0,0 → 1,99 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.AppEvenements; |
import org.tela_botanica.client.modeles.Folder; |
import com.extjs.gxt.ui.client.Events; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.binder.TreeBinder; |
import com.extjs.gxt.ui.client.data.BaseTreeLoader; |
import com.extjs.gxt.ui.client.data.LoadEvent; |
import com.extjs.gxt.ui.client.data.Loader; |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.extjs.gxt.ui.client.data.TreeLoader; |
import com.extjs.gxt.ui.client.data.TreeModelReader; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.event.LoadListener; |
import com.extjs.gxt.ui.client.event.SelectionChangedEvent; |
import com.extjs.gxt.ui.client.event.SelectionChangedListener; |
import com.extjs.gxt.ui.client.mvc.AppEvent; |
import com.extjs.gxt.ui.client.mvc.Controller; |
import com.extjs.gxt.ui.client.mvc.Dispatcher; |
import com.extjs.gxt.ui.client.mvc.View; |
import com.extjs.gxt.ui.client.store.TreeStore; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.layout.AccordionLayout; |
import com.extjs.gxt.ui.client.widget.tree.Tree; |
public class InstitutionMenuVue extends View { |
private Tree tree; |
private TreeStore<Folder> store; |
private TreeBinder<Folder> binder; |
private TreeLoader<Folder> loader; |
public InstitutionMenuVue(Controller controleur) { |
super(controleur); |
} |
protected void initialize() { |
} |
protected void initUI() { |
ContentPanel panneauOuest = (ContentPanel) Registry.get(AppVue.PANNEAU_OUEST); |
panneauOuest.setLayout(new AccordionLayout()); |
ContentPanel mail = new ContentPanel(); |
mail.setHeading("Mail"); |
mail.addListener(Events.Expand, new Listener<ComponentEvent>() { |
public void handleEvent(ComponentEvent be) { |
Dispatcher.get().dispatch(AppEvenements.NavInstitution); |
} |
}); |
tree = new Tree(); |
tree.getStyle().setLeafIconStyle("tree-folder"); |
loader = new BaseTreeLoader(new TreeModelReader()); |
store = new TreeStore<Folder>(loader); |
binder = new TreeBinder<Folder>(tree, store); |
binder.setDisplayProperty("name"); |
binder.setAutoSelect(true); |
binder.addSelectionChangedListener(new SelectionChangedListener<ModelData>() { |
public void selectionChanged(SelectionChangedEvent se) { |
Folder f = (Folder) se.getSelection().get(0); |
AppEvent evt = new AppEvent(AppEvenements.VoirInstitutionListe, f); |
fireEvent(evt); |
} |
}); |
mail.add(tree); |
panneauOuest.add(mail); |
} |
protected void handleEvent(AppEvent event) { |
switch (event.type) { |
case AppEvenements.Init: |
initUI(); |
break; |
} |
if (event.type == AppEvenements.NavInstitution) { |
Folder f = (Folder) event.data; |
if (f != null) { |
loader.addListener(Loader.Load, new LoadListener() { |
@Override |
public void loaderLoad(LoadEvent le) { |
loader.removeLoadListener(this); |
} |
}); |
loader.load(f); |
} |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/AppVue.java |
---|
New file |
0,0 → 1,115 |
package org.tela_botanica.client.vues; |
import org.tela_botanica.client.AppEvenements; |
import org.tela_botanica.client.widgets.IdentificationFenetre; |
import com.extjs.gxt.ui.client.Events; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.LayoutRegion; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.event.WindowEvent; |
import com.extjs.gxt.ui.client.mvc.AppEvent; |
import com.extjs.gxt.ui.client.mvc.Controller; |
import com.extjs.gxt.ui.client.mvc.Dispatcher; |
import com.extjs.gxt.ui.client.mvc.View; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.HtmlContainer; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.Viewport; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayout; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; |
import com.extjs.gxt.ui.client.widget.layout.FitLayout; |
import com.google.gwt.user.client.ui.RootPanel; |
public class AppVue extends View { |
public static final String VIEWPORT = "viewport"; |
public static final String PANNEAU_OUEST = "ouest"; |
public static final String PANNEAU_CENTRE = "centre"; |
private Viewport viewport; |
private ContentPanel panneauOuest; |
private LayoutContainer panneauCentre; |
public AppVue(Controller controleur) { |
super(controleur); |
} |
protected void initialize() { |
IdentificationFenetre dialog = new IdentificationFenetre(); |
dialog.setClosable(false); |
dialog.addListener(Events.Hide, new Listener<WindowEvent>() { |
public void handleEvent(WindowEvent be) { |
Dispatcher.forwardEvent(AppEvenements.Init); |
} |
}); |
dialog.show(); |
} |
private void initUI() { |
viewport = new Viewport(); |
viewport.setLayout(new BorderLayout()); |
creerPanneauNord(); |
creerPanneauOuest(); |
creerPanneauCentral(); |
// Registry utile car présent partout! |
Registry.register(VIEWPORT, viewport); |
Registry.register(PANNEAU_OUEST, panneauOuest); |
Registry.register(PANNEAU_CENTRE, panneauCentre); |
RootPanel.get().add(viewport); |
} |
private void creerPanneauNord() { |
StringBuffer sb = new StringBuffer(); |
sb.append("<div id='demo-header' class='x-small-editor'><div id='demo-theme'></div><div id='demo-title'>Coellections en Ligne Demo</div></div>"); |
HtmlContainer panneauNord = new HtmlContainer(sb.toString()); |
panneauNord.setEnableState(false); |
BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100); |
regionNord.setCollapsible(true); |
regionNord.setFloatable(true); |
regionNord.setSplit(false); |
regionNord.setMargins(new Margins(5, 5, 0, 5)); |
viewport.add(panneauNord, regionNord); |
} |
private void creerPanneauOuest() { |
BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200); |
regionOuest.setSplit(true); |
regionOuest.setCollapsible(true); |
regionOuest.setMargins(new Margins(5)); |
panneauOuest = new ContentPanel(); |
panneauOuest.setBodyBorder(false); |
panneauOuest.setLayoutOnChange(true); |
panneauOuest.setHeading("Menu"); |
panneauOuest.setLayout(new FitLayout()); |
viewport.add(panneauOuest, regionOuest); |
} |
private void creerPanneauCentral() { |
panneauCentre = new LayoutContainer(); |
panneauCentre.setLayout(new FitLayout()); |
BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER); |
regionCentre.setMargins(new Margins(5, 5, 5, 0)); |
viewport.add(panneauCentre, regionCentre); |
} |
protected void handleEvent(AppEvent event) { |
switch (event.type) { |
case AppEvenements.Init: |
initUI(); |
break; |
} |
} |
} |
/trunk/src/org/tela_botanica/client/vues/InstitutionVue.java |
---|
New file |
0,0 → 1,83 |
package org.tela_botanica.client.vues; |
import java.util.List; |
import org.tela_botanica.client.AppEvenements; |
import org.tela_botanica.client.modeles.Folder; |
import org.tela_botanica.client.modeles.Institution; |
import org.tela_botanica.client.widgets.InstitutionDetailPanneau; |
import org.tela_botanica.client.widgets.InstitutionListePanneau; |
import com.extjs.gxt.ui.client.Registry; |
import com.extjs.gxt.ui.client.Style.LayoutRegion; |
import com.extjs.gxt.ui.client.mvc.AppEvent; |
import com.extjs.gxt.ui.client.mvc.Controller; |
import com.extjs.gxt.ui.client.mvc.View; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.LayoutContainer; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayout; |
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; |
public class InstitutionVue extends View { |
private LayoutContainer container; |
private InstitutionListePanneau panneauInstitutionListe; |
private InstitutionDetailPanneau panneauInstitutionDetail; |
public InstitutionVue(Controller controleur) { |
super(controleur); |
} |
protected void handleEvent(AppEvent event) { |
if (event.type == AppEvenements.NavInstitution) { |
LayoutContainer wrapper = (LayoutContainer) Registry.get(AppVue.PANNEAU_CENTRE); |
wrapper.removeAll(); |
wrapper.add(container); |
wrapper.layout(); |
} |
if (event.type == AppEvenements.VoirInstitutionListe) { |
LayoutContainer wrapper = (LayoutContainer) Registry.get(AppVue.PANNEAU_CENTRE); |
Folder f = (Folder) event.getData("folder"); |
panneauInstitutionListe.setHeading(f.getName()); |
ListStore<Institution> store = panneauInstitutionListe.getStore(); |
store.removeAll(); |
store.add((List) event.data); |
wrapper.layout(); |
List items = (List) event.data; |
if (items.size() > 0) { |
panneauInstitutionListe.getBinder().setSelection((Institution) items.get(0)); |
} else { |
panneauInstitutionDetail.showItem(null); |
} |
} |
if (event.type == AppEvenements.VoirInstitutionDetail) { |
Institution item = (Institution) event.data; |
panneauInstitutionDetail.showItem(item); |
} |
} |
@Override |
protected void initialize() { |
container = new LayoutContainer(); |
BorderLayout layout = new BorderLayout(); |
layout.setEnableState(false); |
container.setLayout(layout); |
panneauInstitutionListe = new InstitutionListePanneau(); |
container.add(panneauInstitutionListe, new BorderLayoutData(LayoutRegion.CENTER)); |
panneauInstitutionDetail = new InstitutionDetailPanneau(); |
BorderLayoutData southData = new BorderLayoutData(LayoutRegion.SOUTH, .5f, 200, 1000); |
southData.setSplit(true); |
southData.setMargins(new Margins(5, 0, 0, 0)); |
container.add(panneauInstitutionDetail, southData); |
} |
} |