Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 50 → Rev 51

/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);
}
 
}