Simexplorer-si-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- 1607 discussions
r965 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: tchemit
Date: 2008-02-14 15:33:45 +0000 (Thu, 14 Feb 2008)
New Revision: 965
Removed:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java
Log:
introduction d'une classe pour les refresh de chaque onglet + mutualisation code.
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java 2008-02-14 15:33:29 UTC (rev 964)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java 2008-02-14 15:33:45 UTC (rev 965)
@@ -1,311 +0,0 @@
-/*
-* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin,
-* Tony Chemit, Gabriel Landais
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License
-* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-* ##% */
-package fr.cemagref.simexplorer.is.ui.swing;
-
-import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
-import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
-import fr.cemagref.simexplorer.is.ui.SimExplorer;
-import fr.cemagref.simexplorer.is.ui.swing.actions.util.ChangeI18nAbstractAction;
-import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeHelper;
-import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode;
-import fr.cemagref.simexplorer.is.ui.swing.model.PaginationModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
-import org.codelutin.i18n.CountryEnum;
-import static org.codelutin.i18n.I18n._;
-import org.codelutin.i18n.LanguageEnum;
-
-import javax.swing.AbstractButton;
-import javax.swing.JComboBox;
-import javax.swing.JTabbedPane;
-import javax.swing.JTree;
-import javax.swing.SwingUtilities;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeNode;
-import java.text.SimpleDateFormat;
-import java.util.regex.Matcher;
-
-/**
- * Cette classe contient les méthodes utiles et réutilisables pour rafraichit
- * les ui.
- * <p/>
- * Les méthodes utilisent les données stockées dans les modèles pour rafraichir
- * les uis concernées.
- * <p/>
- * Note : <b>Dans toutes ces méthodes, NOS modèles ne doivent en aucun cas être modifiés</b>
- * <p/>
- * Par contre les modèles des ui peuvent être modifiés (par exemple modèle d'arbre, de liste)
- * mais uniquement à partir de nos modèles.
- *
- * @author chemit
- */
-public class SimExplorerUIRefreshHelper {
-
- public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss.SSS");
-
- /**
- * Rafraichit un onglet de type liste à partir de son modèle.
- *
- * @param ui l'onglet de liste à utiliser
- * @param model le modèle de liste à utiliser
- */
- public static void refreshListTabUI(final JListTab ui, final ListTabModel model) {
-
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
-
- // refresh search text
- ui.getSearchText().setText(model.getQuery());
-
- // refresh search actions
- refreshSearchActions(ui, model);
-
- // refresh changePage combobox
- refreshChangePageCombo(ui, model);
-
- // refresh changeSizor combo
- refreshChangeSizorCombo(ui, model);
-
- // refresh pagination buttons
- refreshPagination(ui, model.getPagination());
-
- // table data model may have changed, must revalidate
- ui.getTable().invalidate();
-
- // parent must be repaint (will revalidate layout for table)
- ui.repaint();
- }
- });
- }
-
- public static void refreshListTablePopupMenu(final JListTab ui, final ListTabModel model) {
- int index = model.getSelectedIndex();
- if (index == -1) {
- // disable popupmenu
- ui.getTablePopupMenu().setEnabled(false);
- return;
- }
- ui.getTablePopupMenu().setEnabled(true);
- MetaData data = model.get(index);
-
- String text = data.getName() + " [" + data.getVersion() + "]";
-
- String tooltip = _("simexplorer.action.downloadLoggableElement.tooltip", text);
- updateButton(ui.getDownloadElement(), true, tooltip);
-
- tooltip = _("simexplorer.action.deleteLoggableElement.tooltip", text);
- updateButton(ui.getDeleteElement(), true, tooltip);
-
- tooltip = _("simexplorer.action.export.tooltip", text);
- updateButton(ui.getExportElement(), true, tooltip);
-
- tooltip = _("simexplorer.action.synchronize.tooltip", text);
- updateButton(ui.getShowTab_synchronize(), true, tooltip);
- }
-
- /**
- * Rafraichit les actions i18n dans le menu en fonction de la locale
- * actuellement utilisée.
- *
- * @param ui l'ui principale
- */
- public static void refreshI18nActions(SimExplorerMainUI ui) {
- LanguageEnum language = SimExplorer.getContext().getConfig().getUserLanguage();
- CountryEnum country = SimExplorer.getContext().getConfig().getUserCountry();
- String[] actions = SimExplorerActionManager.getFactory().getActionNames();
- for (String actionName : actions) {
- Matcher matcher = ChangeI18nAbstractAction.PATTERN_NAME.matcher(actionName);
- if (!matcher.matches()) {
- continue;
- }
- AbstractButton button = (AbstractButton) ui.getObjectById(actionName);
- ChangeI18nAbstractAction action = (ChangeI18nAbstractAction) button.getAction();
- boolean enable = !action.equalsLocale(language, country);
- button.setEnabled(enable);
- }
- }
-
- /**
- * Rafraichit les actions de recherche d'un onglet de type liste.
- *
- * @param ui l'onglet de liste à utiliser
- * @param model le modèle de liste à utiliser
- */
- public static void refreshSearchActions(JListTab ui, ListTabModel model) {
- String text = ui.getSearchText().getText();
- ui.getSearch().setEnabled(model.hasQuery() || !text.isEmpty());
- ui.getResetSearch().setEnabled(model.hasQuery() || !text.isEmpty());
- }
-
- /**
- * Rafraichit les uis après un changement de status de connexion de l'utilisateur.
- * <p/>
- * Si l'utilisateur est déconnecté, alors toutes les ui et actions liées au
- * mode remote sont fermées et les actions correspondantes sont rendues
- * inaccessibles.
- *
- * @param ui l'ui principale
- * @param isConnected flag pour indique si l'utiliseur est connecté
- */
- public static void refreshConnnectState(SimExplorerMainUI ui, final boolean isConnected) {
-
- //SwingUtilities.invokeLater(new Runnable() {
- // public void run() {
- ui.getConnect().setEnabled(!isConnected);
- ui.getUnconnect().setEnabled(isConnected);
- ui.getShowTab_remote().setEnabled(isConnected);
- ui.getToggleTab_remote().setEnabled(isConnected);
-
- if (!isConnected) {
- // close all connected ui
- JTabbedPane container = ui.getContent();
-
- if (SimExplorerTab.remote.isTabVisible(container)) {
- // close tab
- SimExplorerTab.remote.closeTab(container);
- }
- if (SimExplorerTab.synchronize.isTabVisible(container)) {
- // close tab
- SimExplorerTab.synchronize.closeTab(container);
- }
- if (SimExplorerTab.detail.isTabVisible(container)) {
- DetailTabModel model = (DetailTabModel) SimExplorerTab.detail.getModel();
- if (model.isRemote()) {
- // close tab
- SimExplorerTab.detail.closeTab(container);
- }
- }
- }
- // }
- //});
- }
-
- public static void refreshExportElementToRemoteAction(JSynchronizeTab ui, SynchronizeTabModel model) {
- LoggableElement sNode = model.getLocalSelectedNode();
- boolean enabled = sNode != null;
- String tooltip = !enabled ? null : _("simexplorer.action.exportToRemote.tooltip", sNode.getMetaData().getName() + " [" + sNode.getMetaData().getVersion() + "]");
- updateButton(ui.getExportElementToRemote(), enabled, tooltip);
- }
-
- public static void refreshExportElementToLocalAction(JSynchronizeTab ui, SynchronizeTabModel model) {
- LoggableElement sNode = model.getRemoteSelectedNode();
- boolean enabled = sNode != null;
- String tooltip = !enabled ? null : _("simexplorer.action.exportToLocal.tooltip", sNode.getMetaData().getName() + " [" + sNode.getMetaData().getVersion() + "]");
- updateButton(ui.getExportElementToLocal(), enabled, tooltip);
- }
-
- public static void refreshTreeLocalActions(JSynchronizeTab ui, LoggableElementTreeNode node) {
- String tooltip;
- boolean enabled = node != null && !node.isLeaf() && node.getChildCount() > 0;
- tooltip = !enabled ? null : _("simexplorer.action.collapseAll.tooltip", node.getUserObject());
- updateButton(ui.getCollapseAllLocal(), enabled, tooltip);
- tooltip = !enabled ? null : _("simexplorer.action.expandAll.tooltip", node.getUserObject());
- updateButton(ui.getExpandAllLocal(), enabled, tooltip);
- }
-
- public static void refreshTreeRemoteActions(JSynchronizeTab ui, LoggableElementTreeNode node) {
- String tooltip;
- boolean enabled = node != null && !node.isLeaf() && node.getChildCount() > 0;
- tooltip = !enabled ? null : _("simexplorer.action.collapseAll.tooltip", node.getUserObject());
- updateButton(ui.getCollapseAllRemote(), enabled, tooltip);
- tooltip = !enabled ? null : _("simexplorer.action.expandAll.tooltip", node.getUserObject());
- updateButton(ui.getExpandAllRemote(), enabled, tooltip);
- }
-
- public static void updateSynchronizeNavigationTrees(JSynchronizeTab ui, SynchronizeTabModel model) {
-
- TreeNode sourceRoot = LoggableElementTreeHelper.buildLoggableElementNode(model.getSource());
- TreeNode destinationRoot = model.getDestination() == null ? null : LoggableElementTreeHelper.buildLoggableElementNode(model.getDestination());
-
- JTree sourceTree, destinationTree;
- if (model.isRemote()) {
- // source is remote
- sourceTree = ui.getContentTreeRemote();
- destinationTree = ui.getContentTreeLocal();
- } else {
- // source is local
- sourceTree = ui.getContentTreeLocal();
- destinationTree = ui.getContentTreeRemote();
- }
-
- ((DefaultTreeModel) sourceTree.getModel()).setRoot(sourceRoot);
- ((DefaultTreeModel) destinationTree.getModel()).setRoot(destinationRoot);
-
- // by default select the root node
- sourceTree.setSelectionRow(0);
- if (destinationRoot == null) {
- destinationTree.getSelectionModel().clearSelection();
-
- } else {
- destinationTree.setSelectionRow(0);
- }
- //sourceTree.invalidate();
- //destinationTree.invalidate();
- //ui.repaint();
- }
-
- protected static void refreshPagination(JListTab ui, PaginationModel pagination) {
- int page = pagination.getCurrentPage();
- boolean notLast = page + 1 < pagination.getNbPages();
- ui.getGoNextPage().setEnabled(notLast);
- ui.getGoLastPage().setEnabled(notLast);
- }
-
- protected static void refreshChangeSizorCombo(JListTab ui, ListTabModel model) {
- JComboBox combo = ui.getChangeSizor();
- String s = model.getPagination().getWidth() + "";
- if (!s.equals(String.valueOf(combo.getSelectedItem()))) {
- combo.setEnabled(false);
- combo.setSelectedItem(s);
- combo.setEnabled(true);
- }
- }
-
- protected static void refreshChangePageCombo(JListTab ui, ListTabModel model) {
- JComboBox combo = ui.getGoPage();
- long size = model.getPagination().getNbPages();
- combo.setEnabled(false);
- //System.out.println("page old size : " + combo.getItemCount() + " new size : " + size);
- if (size < combo.getItemCount()) {
- while (size < combo.getItemCount()) {
- combo.removeItemAt(combo.getItemCount() - 1);
- }
- } else {
- while (size > combo.getItemCount()) {
- combo.addItem(combo.getItemCount());
- }
- }
- //System.out.println("new page size : " + combo.getItemCount());
-
- combo.setSelectedIndex(model.getPagination().getCurrentPage());
- boolean b = combo.getItemCount() > 1;
- combo.setEnabled(b);
- ui.getCurrentPage().setEnabled(b);
- }
-
- protected static void updateButton(AbstractButton button, boolean enabled, String tooltip) {
- button.setEnabled(enabled);
- button.setToolTipText(tooltip);
- }
-
- protected SimExplorerUIRefreshHelper() {
- // do not instanciate me please
- }
-}
1
0
r964 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: tchemit
Date: 2008-02-14 15:33:29 +0000 (Thu, 14 Feb 2008)
New Revision: 964
Removed:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableBean.java
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementTreeNode.java
Log:
au final, on ne partiera pas sur la voie de l'encapsulation des LoggableElements, on ajoute la provenance des LE dans les noeuds d'abres
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableBean.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableBean.java 2008-02-14 15:32:14 UTC (rev 963)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableBean.java 2008-02-14 15:33:29 UTC (rev 964)
@@ -1,106 +0,0 @@
-/*
-* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin,
-* Tony Chemit, Gabriel Landais
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License
-* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-* ##% */
-package fr.cemagref.simexplorer.is.ui.swing.model;
-
-import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
-import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
-import fr.cemagref.simexplorer.is.entities.metadata.Version;
-import fr.cemagref.simexplorer.is.attachment.Attachment;
-
-import java.util.Date;
-import java.util.Map;
-import java.util.List;
-
-/**
- * Un bean pour encapsuler un LoggableElement et sa provenance (local ou remote)
- *
- * @author chemit
- */
-public class LoggableBean {
-
- protected boolean remote;
-
- protected LoggableElement element;
-
- public LoggableBean(LoggableElement element, boolean remote) {
- this.element = element;
- this.remote = remote;
- }
-
- public LoggableElement getElement() {
- return element;
- }
-
- public boolean isRemote() {
- return remote;
- }
-
- public MetaData getMetaData() {
- return getElement().getMetaData();
- }
-
- @Override
- public String toString() {
- return getElement().toString();
- }
-
- public String getDescription() {
- return getMetaData().getDescription();
- }
-
- public Date getCreationDate() {
- return getMetaData().getCreationDate();
- }
-
- public String getName() {
- return getMetaData().getName();
- }
-
- public String getType() {
- return getMetaData().getType();
- }
-
- public String getUuid() {
- return getMetaData().getUuid();
- }
-
- public Version getVersion() {
- return getMetaData().getVersion();
- }
-
- public boolean isLatest() {
- return getMetaData().isLatest();
- }
-
- public String getHash() {
- return getMetaData().getHash();
- }
-
- public Map<String, String> getDescriptors() {
- return getMetaData().getDescriptors();
- }
-
- public List<Attachment> getAttachments() {
- return getMetaData().getAttachments();
- }
-
- public Attachment getAttachment(Integer attachmentIndex) {
- return getMetaData().getAttachment(attachmentIndex);
- }
-}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementTreeNode.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementTreeNode.java 2008-02-14 15:32:14 UTC (rev 963)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementTreeNode.java 2008-02-14 15:33:29 UTC (rev 964)
@@ -44,16 +44,19 @@
protected String text;
- public LoggableElementTreeNode(LoggableElementTreeNode parent, Object userObject, boolean allowedChildren) {
- this(parent, userObject.toString(), userObject, allowedChildren);
+ protected boolean remote;
+
+ public LoggableElementTreeNode(LoggableElementTreeNode parent, Object userObject,boolean remote, boolean allowedChildren) {
+ this(parent, userObject.toString(), userObject, remote,allowedChildren);
}
- public LoggableElementTreeNode(LoggableElementTreeNode parent, String i18n, Object userObject, boolean allowedChildren) {
+ public LoggableElementTreeNode(LoggableElementTreeNode parent, String i18n, Object userObject,boolean remote, boolean allowedChildren) {
super(userObject, allowedChildren);
if (parent != null) {
parent.add(this);
}
text = i18n;
+ this.remote=remote;
log.debug("Parent " + parent + ", userObject : " + userObject + ", type : " + userObject.getClass().getSimpleName());
}
@@ -62,6 +65,10 @@
return text;
}
+ public boolean isRemote() {
+ return remote;
+ }
+
public void collaspeAll(JTree tree) {
if (isLeaf()) {
return;
1
0
r963 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: tchemit
Date: 2008-02-14 15:32:14 +0000 (Thu, 14 Feb 2008)
New Revision: 963
Added:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ListTabRefreshHelper.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/MainUIRefreshHelper.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SynchronizeTabRefreshHelper.java
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/DetailTabRefreshHelper.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerMainUI.java
Log:
introduction d'une classe pour les refresh de chaque onglet + mutualisation code.
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/DetailTabRefreshHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/DetailTabRefreshHelper.java 2008-02-14 15:31:17 UTC (rev 962)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/DetailTabRefreshHelper.java 2008-02-14 15:32:14 UTC (rev 963)
@@ -19,14 +19,14 @@
package fr.cemagref.simexplorer.is.ui.swing;
import fr.cemagref.simexplorer.is.attachment.Attachment;
-import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication;
+import fr.cemagref.simexplorer.is.entities.EntitiesAction;
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
+import fr.cemagref.simexplorer.is.ui.SimExplorer;
import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
import fr.cemagref.simexplorer.is.ui.swing.model.JDetailTableModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeHelper;
import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode;
import static org.codelutin.i18n.I18n._;
@@ -34,9 +34,7 @@
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JTable;
-import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeNode;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.text.SimpleDateFormat;
@@ -70,11 +68,11 @@
*/
public static void refreshDetailActions(JDetailTab ui, DetailTabModel model, LoggableElementTreeNode node) {
// refresh synchronize action button
- refreshSynchroniseElementAction(ui, model);
+ refreshSynchroniseAction(ui, model);
// refresh download LoggableElement button
refreshDownloadElementAction(ui, model, node);
// refresh delete button
- refreshDeleteElementAction(ui, model);
+ refreshDeleteAction(ui, model);
// refresh export button
refreshExportAction(ui, model);
// refresh download Attachment button
@@ -82,39 +80,35 @@
}
public static void refreshTreeDetailActions(JDetailTab ui, LoggableElementTreeNode node) {
- String tooltip;
- boolean enabled = node != null && !node.isLeaf() && node.getChildCount() > 0;
- tooltip = !enabled ? null : _("simexplorer.action.collapseAll.tooltip", node.getUserObject());
- SimExplorerUIRefreshHelper.updateButton(ui.getCollapseAllDetail(), enabled, tooltip);
- tooltip = !enabled ? null : _("simexplorer.action.expandAll.tooltip", node.getUserObject());
- SimExplorerUIRefreshHelper.updateButton(ui.getExpandAllDetail(), enabled, tooltip);
+ MainUIRefreshHelper.refreshTreeActions(ui.getCollapseAllDetail(), ui.getExpandAllDetail(), node);
}
public static void refreshDownloadElementAction(JDetailTab ui, DetailTabModel model, LoggableElementTreeNode node) {
MetaData detail = model.getDetail();
- boolean enabled = detail != null || LoggableElementTreeHelper.canDownload(node);
+ //boolean enabled = detail != null || LoggableElementTreeHelper.canDownload(node);
+ boolean enabled = EntitiesAction.DOWNLOAD.accept(node);
String tooltip = !enabled ? null : _("simexplorer.action.downloadLoggableElement.tooltip", detail == null ? node.getUserObject() : detail.getName() + " [" + model.getSelectedVersion() + "]");
- SimExplorerUIRefreshHelper.updateButton(ui.getDownloadElement(), enabled, tooltip);
+ MainUIRefreshHelper.updateButton(ui.getDownloadElement(), enabled, tooltip);
}
- protected static void refreshDeleteElementAction(JDetailTab ui, DetailTabModel model) {
+ protected static void refreshDeleteAction(JDetailTab ui, DetailTabModel model) {
MetaData detail = model.getDetail();
- boolean enabled = detail != null;
+ //boolean enabled = detail != null;
+ boolean enabled = EntitiesAction.DELETE.accept(detail);
String tooltip = !enabled ? null : _("simexplorer.action.deleteLoggableElement.tooltip", detail.getName() + " [" + model.getSelectedVersion() + "]");
- SimExplorerUIRefreshHelper.updateButton(ui.getDeleteElement(), enabled, tooltip);
+ MainUIRefreshHelper.updateButton(ui.getDeleteElement(), enabled, tooltip);
}
public static void refreshDownloadAttachmentAction(JDetailTab ui, DetailTabModel model) {
Attachment attachment = model.getSelectedAttachment();
- MetaData detail = model.getDetail();
- boolean enabled = detail != null && attachment != null;
+ boolean enabled = model.getDetail() != null && attachment != null;
String tooltip = !enabled ? null : _("simexplorer.action.downloadAttachment.tooltip", attachment);
- SimExplorerUIRefreshHelper.updateButton(ui.getDownloadAttachment(), enabled, tooltip);
+ MainUIRefreshHelper.updateButton(ui.getDownloadAttachment(), enabled, tooltip);
}
public static void refreshDetailToTreeAction(JDetailTab ui, DetailTabModel model) {
MetaData detail = model.getDetail();
- DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) model.getHistory().getCurrent();
+ LoggableElementTreeNode rootNode = model.getHistory().getCurrent();
LoggableElement rootElement = (LoggableElement) rootNode.getUserObject();
MetaData data = rootElement.getMetaData();
Version version = model.getSelectedVersion();
@@ -126,22 +120,28 @@
boolean enabled = !(detail.getName().equals(data.getName()) && data.getVersion().equals(version));
String tooltip = !enabled ? null : _("simexplorer.action.detailToTree.tooltip", detail.getName() + " [" + version + "]");
- SimExplorerUIRefreshHelper.updateButton(ui.getDetailToTree(), enabled, tooltip);
+ MainUIRefreshHelper.updateButton(ui.getDetailToTree(), enabled, tooltip);
}
- public static void refreshSynchroniseElementAction(JDetailTab ui, DetailTabModel model) {
+ public static void refreshSynchroniseAction(JDetailTab ui, DetailTabModel model) {
MetaData detail = model.getDetail();
- boolean enabled = detail != null;
+ boolean enabled = detail != null && SimExplorer.getContext().isConnected();
String tooltip = !enabled ? null : _("simexplorer.action.synchronize.tooltip", detail.getName() + " [" + model.getSelectedVersion() + "]");
- SimExplorerUIRefreshHelper.updateButton(ui.getShowTab_synchronize(), enabled, tooltip);
+ MainUIRefreshHelper.updateButton(ui.getShowTab_synchronize(), enabled, tooltip);
}
protected static void refreshExportAction(JDetailTab ui, DetailTabModel model) {
MetaData detail = model.getDetail();
LoggableElement sNode = model.getSelectedNode();
- boolean enabled = sNode != null && sNode instanceof ExplorationApplication;
- String tooltip = !enabled ? null : _("simexplorer.action.export.tooltip", detail.getName() + " [" + model.getSelectedVersion() + "]");
- SimExplorerUIRefreshHelper.updateButton(ui.getExportElement(), enabled, tooltip);
+ //boolean enabled = sNode != null && SimExplorer.getContext().isConnected() && sNode instanceof ExplorationApplication;
+ boolean enabled = SimExplorer.getContext().isConnected() && EntitiesAction.EXPORT.accept(sNode);
+
+ String text=null;
+ if (enabled) {
+ text = detail.getName() + " [" + model.getSelectedVersion() + "]";
+ }
+ MainUIRefreshHelper.refreshExportAction(enabled,model.isRemote(),text,ui.getExportElement());
+
}
public static void resetHistory(JDetailTab ui, DetailTabModel model, DefaultComboBoxModel historyModel) {
@@ -160,20 +160,14 @@
boolean enabled = ui.getDetailVersions().getItemCount() > 1;
ui.getDetailVersions().setEnabled(enabled);
String text;
- if (enabled) {
- text = _("simexplorer.action.changeVersion.tooltip");
- } else {
- text = null;
- }
+ text = !enabled ? null : _("simexplorer.action.changeVersion.tooltip");
ui.getDetailVersions().setToolTipText(text);
}
// can not synchronize to tree
- SimExplorerUIRefreshHelper.updateButton(ui.getDetailToTree(), false, null);
+ MainUIRefreshHelper.updateButton(ui.getDetailToTree(), false, null);
}
public static void resetDetailPanel(final JDetailTab ui) {
- //ui.getDetailHeaderFromLocal().setVisible(false);
- //ui.getDetailHeaderFromRemote().setVisible(false);
ui.getDetailVersions().setVisible(false);
ui.getDetailHeader().setText(_("simexplorer.node.nodetail"));
ui.getDetailAttachmentsHeader().setText(_("simexplorer.node.noattachments"));
@@ -186,15 +180,16 @@
((JDetailTableModel) ui.getDetailTable().getModel()).setData(null);
}
- public static void updateDetailNavigationTree(JDetailTab ui, HistoryModel<TreeNode> model) {
+ public static void updateDetailNavigationTree(JDetailTab ui, HistoryModel<LoggableElementTreeNode> model) {
// push it in tree model
((DefaultTreeModel) ui.getNavigationTree().getModel()).setRoot(model.getCurrent());
// by default select the root node
ui.getNavigationTree().setSelectionRow(0);
- boolean hasPrevious = model.size() > 1 && model.hastPrevious();
- SimExplorerUIRefreshHelper.updateButton(ui.getHistoryPrevious(), hasPrevious, hasPrevious ? _("simexplorer.action.historyPrevious.tooltip", model.getPrevious()) : null);
- boolean hasNext = model.size() > 1 && model.hasNext();
- SimExplorerUIRefreshHelper.updateButton(ui.getHistoryNext(), hasNext, hasNext ? _("simexplorer.action.historyNext.tooltip", model.getNext()) : null);
+ boolean enabled;
+ enabled = model.size() > 1 && model.hasPrevious();
+ MainUIRefreshHelper.updateButton(ui.getHistoryPrevious(), enabled, !enabled?null:_("simexplorer.action.historyPrevious.tooltip", model.getPrevious()));
+ enabled= model.size() > 1 && model.hasNext();
+ MainUIRefreshHelper.updateButton(ui.getHistoryNext(), enabled, !enabled?null:_("simexplorer.action.historyNext.tooltip", model.getNext()));
}
public static void updateDetailPanel(Integer index, final JDetailTab ui, DetailTabModel model, LoggableElement selectedNode) {
@@ -260,7 +255,7 @@
protected static int[] computeRows(int nbDescriptorRows, int nbAttachmentRows) {
int[] result = new int[2];
int max = 14;
- int maxOne = max/2;
+ int maxOne = max / 2;
if (nbDescriptorRows == 0) {
result[0] = 0;
result[1] = nbAttachmentRows > max ? max : nbAttachmentRows;
@@ -271,7 +266,7 @@
result[1] = 0;
return result;
}
- if (nbAttachmentRows < maxOne+1 && nbDescriptorRows < maxOne+1) {
+ if (nbAttachmentRows < maxOne + 1 && nbDescriptorRows < maxOne + 1) {
result[0] = nbDescriptorRows;
result[1] = nbAttachmentRows;
return result;
@@ -280,13 +275,13 @@
result[0] = result[1] = maxOne;
return result;
}
- if (nbDescriptorRows < maxOne+1) {
+ if (nbDescriptorRows < maxOne + 1) {
result[0] = nbDescriptorRows;
int i = max - nbDescriptorRows;
result[1] = nbAttachmentRows < i ? nbAttachmentRows : i;
return result;
}
- if (nbAttachmentRows < maxOne+1) {
+ if (nbAttachmentRows < maxOne + 1) {
int i = max - nbAttachmentRows;
result[0] = nbDescriptorRows < i ? nbDescriptorRows : i;
result[1] = nbAttachmentRows;
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ListTabRefreshHelper.java (from rev 952, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/DetailTabRefreshHelper.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ListTabRefreshHelper.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ListTabRefreshHelper.java 2008-02-14 15:32:14 UTC (rev 963)
@@ -0,0 +1,163 @@
+/*
+* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin,
+* Tony Chemit, Gabriel Landais
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+* ##% */
+package fr.cemagref.simexplorer.is.ui.swing;
+
+import fr.cemagref.simexplorer.is.entities.EntitiesAction;
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.ui.SimExplorer;
+import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.PaginationModel;
+import static org.codelutin.i18n.I18n._;
+
+import javax.swing.JComboBox;
+import javax.swing.SwingUtilities;
+
+/**
+ * Cette classe contient les méthodes utiles et réutilisables pour rafraichir
+ * les onglets de liste.
+ * <p/>
+ * Les méthodes utilisent les données stockées dans les modèles pour rafraichir
+ * les uis concernées.
+ * <p/>
+ * Note : <b>Dans toutes ces méthodes, NOS modèles ne doivent en aucun cas être modifiés</b>
+ * <p/>
+ * Par contre les modèles des ui peuvent être modifiés (par exemple modèle d'arbre, de liste)
+ * mais uniquement à partir de nos modèles.
+ *
+ * @author chemit
+ */
+public class ListTabRefreshHelper {
+
+ /**
+ * Rafraichit un onglet de type liste à partir de son modèle.
+ *
+ * @param ui l'onglet de liste à utiliser
+ * @param model le modèle de liste à utiliser
+ */
+ public static void refreshListTabUI(final JListTab ui, final ListTabModel model) {
+
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+
+ // refresh search text
+ ui.getSearchText().setText(model.getQuery());
+
+ // refresh search actions
+ refreshSearchActions(ui, model);
+
+ // refresh changePage combobox
+ refreshChangePageCombo(ui, model);
+
+ // refresh changeSizor combo
+ refreshChangeSizorCombo(ui, model);
+
+ // refresh pagination buttons
+ refreshPagination(ui, model.getPagination());
+
+ // table data model may have changed, must revalidate
+ ui.getTable().invalidate();
+
+ // parent must be repaint (will revalidate layout for table)
+ ui.repaint();
+ }
+ });
+ }
+
+ public static void refreshListTablePopupMenu(final JListTab ui, final ListTabModel model) {
+ int index = model.getSelectedIndex();
+ if (index == -1) {
+ // disable popupmenu
+ ui.getTablePopupMenu().setEnabled(false);
+ return;
+ }
+ ui.getTablePopupMenu().setEnabled(true);
+ MetaData data = model.get(index);
+
+ String text = data.getName() + " [" + data.getVersion() + "]";
+
+ String tooltip = _("simexplorer.action.downloadLoggableElement.tooltip", text);
+ MainUIRefreshHelper.updateButton(ui.getDownloadElement(), EntitiesAction.DOWNLOAD.accept(data), tooltip);
+
+ tooltip = _("simexplorer.action.deleteLoggableElement.tooltip", text);
+ MainUIRefreshHelper.updateButton(ui.getDeleteElement(), EntitiesAction.DELETE.accept(data), tooltip);
+
+ boolean isConnected = SimExplorer.getContext().isConnected();
+ boolean enabled = isConnected && EntitiesAction.EXPORT.accept(data);
+
+ MainUIRefreshHelper.refreshExportAction(enabled,model.isRemote(),text,ui.getExportElement());
+
+ tooltip = _("simexplorer.action.synchronize.tooltip", text);
+ MainUIRefreshHelper.updateButton(ui.getShowTab_synchronize(), isConnected, tooltip);
+ }
+
+ /**
+ * Rafraichit les actions de recherche d'un onglet de type liste.
+ *
+ * @param ui l'onglet de liste à utiliser
+ * @param model le modèle de liste à utiliser
+ */
+ public static void refreshSearchActions(JListTab ui, ListTabModel model) {
+ String text = ui.getSearchText().getText();
+ ui.getSearch().setEnabled(model.hasQuery() || !text.isEmpty());
+ ui.getResetSearch().setEnabled(model.hasQuery() || !text.isEmpty());
+ }
+
+ public static void refreshPagination(JListTab ui, PaginationModel pagination) {
+ int page = pagination.getCurrentPage();
+ boolean notLast = page + 1 < pagination.getNbPages();
+ ui.getGoNextPage().setEnabled(notLast);
+ ui.getGoLastPage().setEnabled(notLast);
+ }
+
+ public static void refreshChangeSizorCombo(JListTab ui, ListTabModel model) {
+ JComboBox combo = ui.getChangeSizor();
+ String s = model.getPagination().getWidth() + "";
+ if (!s.equals(String.valueOf(combo.getSelectedItem()))) {
+ combo.setEnabled(false);
+ combo.setSelectedItem(s);
+ combo.setEnabled(true);
+ }
+ }
+
+ public static void refreshChangePageCombo(JListTab ui, ListTabModel model) {
+ JComboBox combo = ui.getGoPage();
+ long size = model.getPagination().getNbPages();
+ combo.setEnabled(false);
+ //System.out.println("page old size : " + combo.getItemCount() + " new size : " + size);
+ if (size < combo.getItemCount()) {
+ while (size < combo.getItemCount()) {
+ combo.removeItemAt(combo.getItemCount() - 1);
+ }
+ } else {
+ while (size > combo.getItemCount()) {
+ combo.addItem(combo.getItemCount());
+ }
+ }
+ //System.out.println("new page size : " + combo.getItemCount());
+
+ combo.setSelectedIndex(model.getPagination().getCurrentPage());
+ boolean b = combo.getItemCount() > 1;
+ combo.setEnabled(b);
+ ui.getCurrentPage().setEnabled(b);
+ }
+
+ protected ListTabRefreshHelper() {
+ // do not instanciate me please
+ }
+}
\ No newline at end of file
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/MainUIRefreshHelper.java (from rev 952, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/MainUIRefreshHelper.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/MainUIRefreshHelper.java 2008-02-14 15:32:14 UTC (rev 963)
@@ -0,0 +1,162 @@
+/*
+* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin,
+* Tony Chemit, Gabriel Landais
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+* ##% */
+package fr.cemagref.simexplorer.is.ui.swing;
+
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.ui.SimExplorer;
+import fr.cemagref.simexplorer.is.ui.swing.actions.util.ChangeI18nAbstractAction;
+import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode;
+import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import org.codelutin.i18n.CountryEnum;
+import org.codelutin.i18n.LanguageEnum;
+
+import javax.swing.AbstractButton;
+import javax.swing.JTabbedPane;
+import java.util.regex.Matcher;
+
+/**
+ * Cette classe contient les méthodes utiles et réutilisables pour rafraichit
+ * les ui.
+ * <p/>
+ * Les méthodes utilisent les données stockées dans les modèles pour rafraichir
+ * les uis concernées.
+ * <p/>
+ * Note : <b>Dans toutes ces méthodes, NOS modèles ne doivent en aucun cas être modifiés</b>
+ * <p/>
+ * Par contre les modèles des ui peuvent être modifiés (par exemple modèle d'arbre, de liste)
+ * mais uniquement à partir de nos modèles.
+ *
+ * @author chemit
+ */
+public class MainUIRefreshHelper {
+
+ /**
+ * Rafraichit les actions i18n dans le menu en fonction de la locale
+ * actuellement utilisée.
+ *
+ * @param ui l'ui principale
+ */
+ public static void refreshI18nActions(SimExplorerMainUI ui) {
+ LanguageEnum language = SimExplorer.getContext().getConfig().getUserLanguage();
+ CountryEnum country = SimExplorer.getContext().getConfig().getUserCountry();
+ String[] actions = SimExplorerActionManager.getFactory().getActionNames();
+ for (String actionName : actions) {
+ Matcher matcher = ChangeI18nAbstractAction.PATTERN_NAME.matcher(actionName);
+ if (!matcher.matches()) {
+ continue;
+ }
+ AbstractButton button = (AbstractButton) ui.getObjectById(actionName);
+ ChangeI18nAbstractAction action = (ChangeI18nAbstractAction) button.getAction();
+ boolean enable = !action.equalsLocale(language, country);
+ button.setEnabled(enable);
+ }
+ }
+
+ /**
+ * Rafraichit les uis après un changement de status de connexion de l'utilisateur.
+ * <p/>
+ * Si l'utilisateur est déconnecté, alors toutes les ui et actions liées au
+ * mode remote sont fermées et les actions correspondantes sont rendues
+ * inaccessibles.
+ *
+ * @param ui l'ui principale
+ * @param isConnected flag pour indique si l'utiliseur est connecté
+ * @param history l'historique de l'onglet de detail
+ */
+ public static void refreshConnnectState(SimExplorerMainUI ui, final boolean isConnected, HistoryModel<LoggableElementTreeNode> history) {
+
+ //SwingUtilities.invokeLater(new Runnable() {
+ // public void run() {
+ ui.getConnect().setEnabled(!isConnected);
+ ui.getUnconnect().setEnabled(isConnected);
+ ui.getShowTab_remote().setEnabled(isConnected);
+ ui.getToggleTab_remote().setEnabled(isConnected);
+
+ JTabbedPane container = ui.getContent();
+ DetailTabModel model = (DetailTabModel) SimExplorerTab.detail.getModel();
+ JDetailTab tabUI = (JDetailTab) SimExplorerTab.detail.getUI();
+ if (!isConnected) {
+ // close all connected ui
+
+ if (SimExplorerTab.remote.isTabVisible(container)) {
+ // close tab
+ SimExplorerTab.remote.closeTab(container);
+ }
+ if (SimExplorerTab.synchronize.isTabVisible(container)) {
+ // close tab
+ SimExplorerTab.synchronize.closeTab(container);
+ }
+ if (SimExplorerTab.detail.isTabVisible(container) && history != null) {
+ if (history.isEmpty()) {
+ // close tab, no more history
+ SimExplorerTab.detail.closeTab(container);
+ } else {
+ // select current history element
+ LoggableElementTreeNode node = history.getCurrent();
+ model.setRemote(node.isRemote());
+ model.setRootNode((LoggableElement) node.getUserObject());
+ DetailTabRefreshHelper.updateDetailNavigationTree(tabUI, model.getHistory());
+ }
+ }
+ }
+ if (SimExplorerTab.detail.isTabVisible(container)) {
+ DetailTabRefreshHelper.refreshSynchroniseAction(tabUI, model);
+ DetailTabRefreshHelper.refreshExportAction(tabUI, model);
+ }
+
+ if (SimExplorerTab.local.isTabVisible(container)) {
+ ListTabRefreshHelper.refreshListTablePopupMenu((JListTab)SimExplorerTab.local.getUI(), (ListTabModel) SimExplorerTab.local.getModel());
+ }
+ // }
+ //});
+ }
+
+ protected static void updateButton(AbstractButton button, boolean enabled, String tooltip) {
+ button.setEnabled(enabled);
+
+ button.setToolTipText(enabled?tooltip:null);
+ }
+
+ protected MainUIRefreshHelper() {
+ // do not instanciate me please
+ }
+
+ public static void refreshTreeActions(AbstractButton collapseButton, AbstractButton expandButton, LoggableElementTreeNode node) {
+ String tooltip;
+ boolean enabled = node != null && !node.isLeaf() && node.getChildCount() > 0;
+ tooltip = !enabled ? null : org.codelutin.i18n.I18n._("simexplorer.action.collapseAll.tooltip", node.getUserObject());
+ updateButton(collapseButton, enabled, tooltip);
+ tooltip = !enabled ? null : org.codelutin.i18n.I18n._("simexplorer.action.expandAll.tooltip", node.getUserObject());
+ updateButton(expandButton, enabled, tooltip);
+ }
+
+ public static void refreshExportAction(boolean enabled, boolean remote, String text, AbstractButton button) {
+ String tooltip = null;
+ if (enabled) {
+ if (remote) {
+ tooltip = org.codelutin.i18n.I18n._("simexplorer.action.exportToLocal.tooltip", text);
+ } else {
+ tooltip = org.codelutin.i18n.I18n._("simexplorer.action.exportToRemote.tooltip", text);
+ }
+ }
+ updateButton(button, enabled, tooltip);
+ }
+}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerMainUI.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerMainUI.java 2008-02-14 15:31:17 UTC (rev 962)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerMainUI.java 2008-02-14 15:32:14 UTC (rev 963)
@@ -34,7 +34,7 @@
SimExplorerActionManager.loadActions(this, null);
// repaint i18n actions
- SimExplorerUIRefreshHelper.refreshI18nActions(this);
+ MainUIRefreshHelper.refreshI18nActions(this);
}
public void setStatus(final String msg) {
Added: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SynchronizeTabRefreshHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SynchronizeTabRefreshHelper.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SynchronizeTabRefreshHelper.java 2008-02-14 15:32:14 UTC (rev 963)
@@ -0,0 +1,110 @@
+/*
+* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin,
+* Tony Chemit, Gabriel Landais
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+* ##% */
+package fr.cemagref.simexplorer.is.ui.swing;
+
+import fr.cemagref.simexplorer.is.entities.EntitiesAction;
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeHelper;
+import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode;
+import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
+
+import javax.swing.JTree;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeNode;
+
+/**
+ * Cette classe contient les méthodes utiles et réutilisables pour rafraichir
+ * les onglets de liste.
+ * <p/>
+ * Les méthodes utilisent les données stockées dans les modèles pour rafraichir
+ * les uis concernées.
+ * <p/>
+ * Note : <b>Dans toutes ces méthodes, NOS modèles ne doivent en aucun cas être modifiés</b>
+ * <p/>
+ * Par contre les modèles des ui peuvent être modifiés (par exemple modèle d'arbre, de liste)
+ * mais uniquement à partir de nos modèles.
+ *
+ * @author chemit
+ */
+public class SynchronizeTabRefreshHelper {
+
+ public static void refreshExportElementToRemoteAction(JSynchronizeTab ui, SynchronizeTabModel model) {
+ LoggableElement sNode = model.getLocalSelectedNode();
+ boolean enabled = EntitiesAction.EXPORT.accept(sNode);
+ String text = null;
+ if (enabled) {
+ text = sNode.getMetaData().getName() + " [" + sNode.getMetaData().getVersion() + "]";
+ }
+ MainUIRefreshHelper.refreshExportAction(enabled, false, text, ui.getExportElementToRemote());
+ }
+
+ public static void refreshExportElementToLocalAction(JSynchronizeTab ui, SynchronizeTabModel model) {
+ LoggableElement sNode = model.getRemoteSelectedNode();
+ boolean enabled = EntitiesAction.EXPORT.accept(sNode);
+ String text = null;
+ if (enabled) {
+ text = sNode.getMetaData().getName() + " [" + sNode.getMetaData().getVersion() + "]";
+ }
+ MainUIRefreshHelper.refreshExportAction(enabled, true, text, ui.getExportElementToLocal());
+ }
+
+ public static void refreshTreeLocalActions(JSynchronizeTab ui, LoggableElementTreeNode node) {
+ MainUIRefreshHelper.refreshTreeActions(ui.getCollapseAllLocal(), ui.getExpandAllLocal(), node);
+ }
+
+ public static void refreshTreeRemoteActions(JSynchronizeTab ui, LoggableElementTreeNode node) {
+ MainUIRefreshHelper.refreshTreeActions(ui.getCollapseAllRemote(), ui.getExpandAllRemote(), node);
+ }
+
+ public static void updateSynchronizeNavigationTrees(JSynchronizeTab ui, SynchronizeTabModel model) {
+
+ TreeNode sourceRoot = LoggableElementTreeHelper.buildLoggableElementNode(model.getSource(), model.isRemote());
+ TreeNode destinationRoot = model.getDestination() == null ? null : LoggableElementTreeHelper.buildLoggableElementNode(model.getDestination(), !model.isRemote());
+
+ JTree sourceTree, destinationTree;
+ if (model.isRemote()) {
+ // source is remote
+ sourceTree = ui.getContentTreeRemote();
+ destinationTree = ui.getContentTreeLocal();
+ } else {
+ // source is local
+ sourceTree = ui.getContentTreeLocal();
+ destinationTree = ui.getContentTreeRemote();
+ }
+
+ ((DefaultTreeModel) sourceTree.getModel()).setRoot(sourceRoot);
+ ((DefaultTreeModel) destinationTree.getModel()).setRoot(destinationRoot);
+
+ // by default select the root node
+ sourceTree.setSelectionRow(0);
+ if (destinationRoot == null) {
+ destinationTree.getSelectionModel().clearSelection();
+
+ } else {
+ destinationTree.setSelectionRow(0);
+ }
+ //sourceTree.invalidate();
+ //destinationTree.invalidate();
+ //ui.repaint();
+ }
+
+ protected SynchronizeTabRefreshHelper() {
+ // do not instanciate me please
+ }
+}
\ No newline at end of file
1
0
r962 - in trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is: . entities
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: tchemit
Date: 2008-02-14 15:31:17 +0000 (Thu, 14 Feb 2008)
New Revision: 962
Added:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/entities/
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/entities/EntitiesAction.java
Log:
introduction enum?\195?\169ration pour d?\195?\169finir les diff?\195?\169rentes actions possibles pour chaque type d'objet de l'application
Added: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/entities/EntitiesAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/entities/EntitiesAction.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/entities/EntitiesAction.java 2008-02-14 15:31:17 UTC (rev 962)
@@ -0,0 +1,76 @@
+/*
+* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin,
+* Tony Chemit, Gabriel Landais
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+* ##% */
+package fr.cemagref.simexplorer.is.entities;
+
+import fr.cemagref.simexplorer.is.entities.data.Component;
+import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication;
+import fr.cemagref.simexplorer.is.entities.data.ExplorationData;
+import fr.cemagref.simexplorer.is.entities.data.Library;
+import fr.cemagref.simexplorer.is.entities.data.Result;
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Une énumération pour définir les actions possibles sur les entités du projet.
+ *
+ * @author chemit
+ */
+public enum EntitiesAction {
+
+ DOWNLOAD(ExplorationApplication.class, Result.class, Library.class),
+ EXPORT(ExplorationApplication.class, Result.class, Library.class),
+ IMPORT(ExplorationApplication.class, Library.class),
+ DELETE(ExplorationApplication.class, ExplorationData.class, Component.class);
+
+ private List<Class<?>> classes;
+ private List<String> types;
+
+ private EntitiesAction(Class<?>... classes) {
+ this.classes = Arrays.asList(classes);
+ this.types = new ArrayList<String>(classes.length);
+ for (Class<?> aClass : classes) {
+ this.types.add(aClass.getSimpleName());
+ }
+ }
+
+ public boolean accept(LoggableElementTreeNode node) {
+ return node != null && node.getUserObject() != null && accept(node.getUserObject().getClass());
+ }
+
+ public boolean accept(LoggableElement sNode) {
+ return sNode!=null && accept(sNode.getClass());
+ }
+
+ public boolean accept(MetaData metaData) {
+ return metaData!=null && accept(metaData.getType());
+ }
+
+ public boolean accept(Class<?> klass) {
+ return klass != null && classes.contains(klass);
+ }
+
+ public boolean accept(String type) {
+ return type != null && types.contains(type);
+ }
+}
1
0
r961 - trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: tchemit
Date: 2008-02-14 15:28:24 +0000 (Thu, 14 Feb 2008)
New Revision: 961
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx
Log:
ajout todo + supression code commente
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx 2008-02-14 11:26:51 UTC (rev 960)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx 2008-02-14 15:28:24 UTC (rev 961)
@@ -2,6 +2,7 @@
<style source="common.css"/>
<row>
<cell>
+ <!--TODO imposer une taille minimum -->
<Table id='toolbarNavigation' styleClass='border' insets='0,0,0,0'>
<row>
<cell anchor='west' insets='0,2,0,0' weightx="1" fill='horizontal' >
@@ -60,15 +61,7 @@
<JTree id="navigationTree" model='{new javax.swing.tree.DefaultTreeModel(null)}'/>
</JScrollPane>
<JScrollPane id="scrollPane" columnHeaderView='{toolbarDetail}' border='{null}' horizontalScrollBarPolicy='horizontal_scrollbar_never' verticalScrollBarPolicy='vertical_scrollbar_never'>
- <Table id='detail' insets='2,2,2,1'>
- <!--row fill='vertical'>
- <cell anchor='west'>
- <JLabel text='simexplorer.common.name'/>
- </cell>
- <cell weightx="1" anchor='west'>
- <JLabel id='detailName'/>
- </cell>
- </row-->
+ <Table id='detail' insets='2,2,2,1'>
<row fill='vertical'>
<cell anchor='west'>
<JLabel text='simexplorer.common.type'/>
@@ -77,28 +70,6 @@
<JLabel id='detailType'/>
</cell>
</row>
- <!--row>
- <cell anchor='west'>
- <JLabel text='simexplorer.common.version'/>
- </cell>
- <cell weightx="1" anchor='west' fill="horizontal">
- <Table>
- <row fill="horizontal">
- <cell anchor="west">
- <JComboBox id='detailVersions' model='{new DefaultComboBoxModel()}'/>
- </cell>
- <cell fill="horizontal" weightx="2">
- <JLabel text=""/>
- </cell>
- <cell anchor="east">
- <JToolBar>
- <JButton id='detailToTree'/>
- </JToolBar>
- </cell>
- </row>
- </Table>
- </cell>
- </row-->
<row fill='vertical'>
<cell anchor='west'>
<JLabel text='simexplorer.common.description'/>
1
0
r960 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service
by glandais@users.labs.libre-entreprise.org 14 Feb '08
by glandais@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: glandais
Date: 2008-02-14 11:26:51 +0000 (Thu, 14 Feb 2008)
New Revision: 960
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java
Log:
RMIIO update, serializable input stream integrated
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-14 11:21:05 UTC (rev 959)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-14 11:26:51 UTC (rev 960)
@@ -18,14 +18,9 @@
* ##% */
package fr.cemagref.simexplorer.is.service;
-import fr.cemagref.simexplorer.is.attachment.Attachment;
-import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
-import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
-import fr.cemagref.simexplorer.is.entities.metadata.Version;
import static fr.cemagref.simexplorer.is.factories.XmlConstants.FILE_DATA_PREFIX;
import static fr.cemagref.simexplorer.is.factories.XmlConstants.FILE_XML;
import static fr.cemagref.simexplorer.is.factories.XmlConstants.FOLDER_SEPARATOR;
-import org.codelutin.util.ZipStreamEncoder;
import java.io.InputStream;
import java.io.PipedInputStream;
@@ -35,6 +30,15 @@
import java.util.Map;
import java.util.SortedMap;
+import org.codelutin.util.ZipStreamEncoder;
+
+import com.healthmarketscience.rmiio.SerializableInputStream;
+
+import fr.cemagref.simexplorer.is.attachment.Attachment;
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.entities.metadata.Version;
+
/**
* The Class MockStorageServiceImpl.
*
@@ -59,14 +63,14 @@
throw new IllegalStateException("not implemented");
}
- public MetaData saveElement(String token, SimExplorerServiceStream zipRemoteStream)
+ public MetaData saveElement(String token, SerializableInputStream zipRemoteStream)
throws SimExplorerServiceException {
return (MetaData) checkImplemented();
}
public MetaData saveElement(String token,
- SimExplorerServiceStream xmlRemoteStream,
- Map<Attachment, SimExplorerServiceStream> attachmentsRemoteStream)
+ SerializableInputStream xmlRemoteStream,
+ Map<Attachment, SerializableInputStream> attachmentsRemoteStream)
throws SimExplorerServiceException {
return (MetaData) checkImplemented();
}
1
0
r959 - in trunk/simexplorer-is: simexplorer-is-service simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages
by glandais@users.labs.libre-entreprise.org 14 Feb '08
by glandais@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: glandais
Date: 2008-02-14 11:21:05 +0000 (Thu, 14 Feb 2008)
New Revision: 959
Removed:
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/SimExplorerServiceStream.java
Modified:
trunk/simexplorer-is/simexplorer-is-service/pom.xml
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java
trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalVersions.java
trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceMassInsert.java
trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceTest.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementImport.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Install.java
Log:
RMIIO update, serializable input stream integrated
Modified: trunk/simexplorer-is/simexplorer-is-service/pom.xml
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/pom.xml 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-service/pom.xml 2008-02-14 11:21:05 UTC (rev 959)
@@ -65,7 +65,7 @@
<dependency>
<groupId>com.healthmarketscience.rmiio</groupId>
<artifactId>rmiio</artifactId>
- <version>2.0.0</version>
+ <version>2.0.1</version>
</dependency>
<dependency>
<groupId>jboss</groupId>
Deleted: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/SimExplorerServiceStream.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/SimExplorerServiceStream.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/SimExplorerServiceStream.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -1,186 +0,0 @@
-/*
-* ##% Copyright (C) 2008 Code Lutin, Gabriel Landais
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License
-* as published by the Free Software Foundation; either version 2
-* of the License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-* ##% */
-package fr.cemagref.simexplorer.is.service;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Serializable;
-import java.rmi.RemoteException;
-
-import com.healthmarketscience.rmiio.RemoteInputStream;
-import com.healthmarketscience.rmiio.RemoteInputStreamClient;
-import com.healthmarketscience.rmiio.SimpleRemoteInputStream;
-
-/**
- * The Class SimExplorerServiceStream.
- *
- * Simplify usage of remote streams.
- *
- * To allow magic remoting, your stream has to encapsulated in a SimExplorerServiceStream with
- *
- * <code>
- * SimExplorerServiceStream serviceStream = new SimExplorerServiceStream(myStream);
- * service.method(serviceStream);
- * </code>
- *
- * Stream will work, even through a RMI call.
- *
- * @author glandais
- *
- */
-public class SimExplorerServiceStream extends InputStream implements
- Serializable {
-
- private static final long serialVersionUID = 1976003275577858320L;
-
- /** The remote output stream from RMIIO, used for serializing stream. */
- private RemoteInputStream ris;
-
- /** The local stream, set to null if stream is serialized. */
- transient private BufferedInputStream bis;
-
- /** true if stream is initialized. */
- private boolean initialized;
-
- /**
- * Instantiates a new stream.
- *
- * @param bis the bis
- */
- public SimExplorerServiceStream(InputStream bis) {
- super();
- // Set local stream (null if this is serialized)
- this.bis = new BufferedInputStream(bis);
- try {
- // Create a stub, used in init
- ris = new SimpleRemoteInputStream(bis).export();
- } catch (RemoteException e) {
- ris = null;
- }
-
- initialized = false;
- }
-
- /**
- * Inits the local stream.
- *
- * Called before every delegated method
- */
- private void init() {
- if (!initialized) {
- // Check is local stream is null (ie as been serialized)
- if (bis != null) {
- // remote stream is useless in that case
- ris = null;
- } else {
- try {
- // Otherwise use RMIIO to retrieve remote stream
- bis = new BufferedInputStream(RemoteInputStreamClient
- .wrap(ris));
- } catch (IOException e) {
- // Something went wrong during transformation
- throw new RuntimeException(e);
- }
- }
- initialized = true;
- }
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#available()
- */
- @Override
- public int available() throws IOException {
- init();
- return bis.available();
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#close()
- */
- @Override
- public void close() throws IOException {
- init();
- bis.close();
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#mark(int)
- */
- @Override
- public synchronized void mark(int readlimit) {
- init();
- bis.mark(readlimit);
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#markSupported()
- */
- @Override
- public boolean markSupported() {
- init();
- return bis.markSupported();
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#read()
- */
- @Override
- public int read() throws IOException {
- init();
- return bis.read();
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#read(byte[])
- */
- @Override
- public int read(byte[] b) throws IOException {
- init();
- return bis.read(b);
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#read(byte[], int, int)
- */
- @Override
- public int read(byte[] b, int off, int len) throws IOException {
- init();
- return bis.read(b, off, len);
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#reset()
- */
- @Override
- public synchronized void reset() throws IOException {
- init();
- bis.reset();
- }
-
- /* (non-Javadoc)
- * @see java.io.InputStream#skip(long)
- */
- @Override
- public long skip(long n) throws IOException {
- init();
- return bis.skip(n);
- }
-
-}
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -22,6 +22,8 @@
import javax.ejb.Remote;
+import com.healthmarketscience.rmiio.SerializableInputStream;
+
import fr.cemagref.simexplorer.is.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
@@ -58,7 +60,7 @@
*
* @throws SimExplorerServiceException the sim explorer service exception
*/
- MetaData saveElement(String token, SimExplorerServiceStream zipStream)
+ MetaData saveElement(String token, SerializableInputStream zipStream)
throws SimExplorerServiceException;
/**
@@ -72,8 +74,8 @@
*
* @throws SimExplorerServiceException the sim explorer service exception
*/
- MetaData saveElement(String token, SimExplorerServiceStream xmlStream,
- Map<Attachment, SimExplorerServiceStream> attachmentsStream)
+ MetaData saveElement(String token, SerializableInputStream xmlStream,
+ Map<Attachment, SerializableInputStream> attachmentsStream)
throws SimExplorerServiceException;
/**
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -35,6 +35,8 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import com.healthmarketscience.rmiio.SerializableInputStream;
+
import fr.cemagref.simexplorer.is.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.data.DataEntity;
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
@@ -171,7 +173,7 @@
*
* @throws SimExplorerServiceException the sim explorer service exception
*/
- public MetaData saveElement(String token, SimExplorerServiceStream zipStream) throws SimExplorerServiceException {
+ public MetaData saveElement(String token, SerializableInputStream zipStream) throws SimExplorerServiceException {
String xmlFile = null;
Map<Attachment, String> attachments = new HashMap<Attachment, String>();
@@ -233,13 +235,13 @@
*
* @throws SimExplorerServiceException the exception
*/
- public MetaData saveElement(String token, SimExplorerServiceStream xmlFile,
- Map<Attachment, SimExplorerServiceStream> attachments) throws SimExplorerServiceException {
+ public MetaData saveElement(String token, SerializableInputStream xmlFile,
+ Map<Attachment, SerializableInputStream> attachments) throws SimExplorerServiceException {
try {
// Store temporary data
String idxml = getStorageEngine().storeTempData(xmlFile);
Map<Attachment, String> idsattachment = new HashMap<Attachment, String>();
- for (Map.Entry<Attachment, SimExplorerServiceStream> entry : attachments.entrySet()) {
+ for (Map.Entry<Attachment, SerializableInputStream> entry : attachments.entrySet()) {
String idattachment = getStorageEngine().storeTempData(entry.getValue());
idsattachment.put(entry.getKey(), idattachment);
}
@@ -272,7 +274,7 @@
MetaData mde = getMetadata(token, uuid, version);
InputStream stream = getStorageEngine().retrieveData(token, mde, attachment);
- return new SimExplorerServiceStream(stream);
+ return new SerializableInputStream(stream);
} catch (Exception e) {
throw new SimExplorerServiceException(e);
}
@@ -293,7 +295,7 @@
MetaData mde = getMetadata(token, uuid, version);
try {
InputStream xmlStream = getStorageEngine().retrieveData(token, mde, getXMLAttachment());
- return new SimExplorerServiceStream(xmlStream);
+ return new SerializableInputStream(xmlStream);
} catch (Exception e) {
throw new SimExplorerServiceException(e);
}
@@ -335,7 +337,7 @@
ZipStreamEncoder zse = new ZipStreamEncoder(files, pipedOut);
zse.start();
- return new SimExplorerServiceStream(pipedIn);
+ return new SerializableInputStream(pipedIn);
} catch (Exception e) {
throw new SimExplorerServiceException(e);
}
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -17,15 +17,18 @@
* ##% */
package fr.cemagref.simexplorer.is.service;
+import java.io.IOException;
import java.io.InputStream;
+import com.healthmarketscience.rmiio.SerializableInputStream;
+
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
public class StorageServiceHelper {
public static final String STORAGE_SERVICE_LOOKUP_NAME = "StorageService";
-
+
/**
* Export element to another service.
*
@@ -44,7 +47,12 @@
// Extract element from source service
InputStream fromElement = fromService.retrieveElementFull(token, uuid, version);
// Store element in remote service
- MetaData toElement = toService.saveElement(token, new SimExplorerServiceStream(fromElement));
+ MetaData toElement;
+ try {
+ toElement = toService.saveElement(token, new SerializableInputStream(fromElement));
+ } catch (IOException e) {
+ throw new SimExplorerServiceException(e);
+ }
// fromElement has to be updated
if (!toElement.getUuid().equals(uuid) || !toElement.getVersion().equals(Version.valueOf(version))) {
Modified: trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalVersions.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalVersions.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceLocalVersions.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -17,7 +17,6 @@
* ##% */
package fr.cemagref.simexplorer.is.service;
-import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -26,6 +25,9 @@
import java.util.Set;
import junit.framework.TestCase;
+
+import com.healthmarketscience.rmiio.SerializableInputStream;
+
import fr.cemagref.simexplorer.is.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.data.Code;
import fr.cemagref.simexplorer.is.entities.data.Component;
@@ -49,7 +51,7 @@
/** The r. */
private Random r = new Random();
- private Map<Attachment, SimExplorerServiceStream> attachments;
+ private Map<Attachment, SerializableInputStream> attachments;
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
@@ -66,7 +68,7 @@
boolean computeAttachments) throws Exception {
if (computeAttachments) {
- attachments = new HashMap<Attachment, SimExplorerServiceStream>();
+ attachments = new HashMap<Attachment, SerializableInputStream>();
List<Attachment> attachmentsKeys = new ArrayList<Attachment>();
@@ -91,13 +93,13 @@
RandomStream randomStream = elementGenerator
.generateTextStream();
attachment.setDataHash(randomStream.getMd5());
- SimExplorerServiceStream stream = new SimExplorerServiceStream(
+ SerializableInputStream stream = new SerializableInputStream(
randomStream.getStream());
attachments.put(attachment, stream);
}
}
- SimExplorerServiceStream xmlStream = new SimExplorerServiceStream(
+ SerializableInputStream xmlStream = new SerializableInputStream(
BaseEntityFactory.getFactory(ExplorationApplication.class)
.saveElement(XmlConstants.VALUE_METADATA_TYPE_EA, ea));
Modified: trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceMassInsert.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceMassInsert.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceMassInsert.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -17,7 +17,6 @@
* ##% */
package fr.cemagref.simexplorer.is.service;
-import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -32,9 +31,7 @@
import junit.framework.TestCase;
-import com.healthmarketscience.rmiio.RemoteInputStream;
-import com.healthmarketscience.rmiio.RemoteInputStreamServer;
-import com.healthmarketscience.rmiio.SimpleRemoteInputStream;
+import com.healthmarketscience.rmiio.SerializableInputStream;
import fr.cemagref.simexplorer.is.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.data.Component;
@@ -69,8 +66,7 @@
Properties properties = (Properties) System.getProperties().clone();
properties.put("java.naming.provider.url", "jnp://localhost:1099");
- properties.put("java.naming.factory.initial",
- "org.jnp.interfaces.NamingContextFactory");
+ properties.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
properties.put("java.naming.factory.url.pkgs", "org.jnp.interfaces");
Context context = new InitialContext(properties);
@@ -98,47 +94,37 @@
for (int j = 0; j < v; j++) {
ExplorationApplication ea = elementGenerator.generateRandomEA();
ea.getMetaData().setUuid(parentEa.getMetaData().getUuid());
- ea.getMetaData().setVersion(
- parentEa.getMetaData().getVersion().toString());
+ ea.getMetaData().setVersion(parentEa.getMetaData().getVersion().toString());
- ea.getMetaData().setVersion(
- ea.getMetaData().getVersion().incVersion(r.nextInt(3))
- .toString());
+ ea.getMetaData().setVersion(ea.getMetaData().getVersion().incVersion(r.nextInt(3)).toString());
- Map<Attachment, SimExplorerServiceStream> attachments = new HashMap<Attachment, SimExplorerServiceStream>();
+ Map<Attachment, SerializableInputStream> attachments = new HashMap<Attachment, SerializableInputStream>();
List<Attachment> attachmentsKeys = new ArrayList<Attachment>();
attachmentsKeys.addAll(ea.getMetaData().getAttachments());
Set<Component> components = ea.getComponents();
for (Component component : components) {
- attachmentsKeys.addAll(component.getMetaData()
- .getAttachments());
+ attachmentsKeys.addAll(component.getMetaData().getAttachments());
Set<Library> libraries = component.getLibraries();
for (Library library : libraries) {
- attachmentsKeys.addAll(library.getMetaData()
- .getAttachments());
+ attachmentsKeys.addAll(library.getMetaData().getAttachments());
}
}
Set<ExplorationData> explorations = ea.getExplorations();
for (ExplorationData explorationData : explorations) {
- attachmentsKeys.addAll(explorationData.getMetaData()
- .getAttachments());
+ attachmentsKeys.addAll(explorationData.getMetaData().getAttachments());
}
for (Attachment attachment : attachmentsKeys) {
- RandomStream randomStream = elementGenerator
- .generateTextStream();
+ RandomStream randomStream = elementGenerator.generateTextStream();
attachment.setDataHash(randomStream.getMd5());
- SimExplorerServiceStream stream = new SimExplorerServiceStream(
- randomStream.getStream());
+ SerializableInputStream stream = new SerializableInputStream(randomStream.getStream());
attachments.put(attachment, stream);
}
- SimExplorerServiceStream xmlStream = new SimExplorerServiceStream(
- BaseEntityFactory.getFactory(
- ExplorationApplication.class).saveElement(
- XmlConstants.VALUE_METADATA_TYPE_EA, ea));
+ SerializableInputStream xmlStream = new SerializableInputStream(BaseEntityFactory.getFactory(
+ ExplorationApplication.class).saveElement(XmlConstants.VALUE_METADATA_TYPE_EA, ea));
storageService.saveElement(token, xmlStream, attachments);
}
@@ -146,12 +132,9 @@
if (i > 0 && i % 100 == 0) {
Date end = new Date();
long time = end.getTime() - begin.getTime();
- System.out.println("Insert " + i + " : Time taken : " + time
- + "ms");
+ System.out.println("Insert " + i + " : Time taken : " + time + "ms");
double timePerElement = time / i;
- System.out.println("Insert " + i
- + " : Time taken per element : " + timePerElement
- + "ms");
+ System.out.println("Insert " + i + " : Time taken per element : " + timePerElement + "ms");
}
}
Modified: trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceTest.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceTest.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceTest.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -17,13 +17,13 @@
* ##% */
package fr.cemagref.simexplorer.is.service;
-import com.healthmarketscience.rmiio.RemoteInputStreamServer;
-import com.healthmarketscience.rmiio.SimpleRemoteInputStream;
-import junit.framework.TestCase;
-
import java.io.FileInputStream;
import java.io.InputStream;
+import junit.framework.TestCase;
+
+import com.healthmarketscience.rmiio.SerializableInputStream;
+
/** The Class StorageServiceTest. */
public class StorageServiceTest extends TestCase {
@@ -56,7 +56,7 @@
public void testInsertElementZip() throws Exception {
InputStream zipStream = new FileInputStream(
"./src/ressources/testImport/test.zip");
- SimExplorerServiceStream zipRemoteStream = new SimExplorerServiceStream(
+ SerializableInputStream zipRemoteStream = new SerializableInputStream(
zipStream);
storageService.saveElement(null, zipRemoteStream);
assertNotNull(storageService.getMetadata(null, "abcd"));
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementImport.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementImport.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementImport.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -20,12 +20,10 @@
import org.apache.tapestry.annotations.InjectPage;
import org.apache.tapestry.upload.services.UploadedFile;
-import com.healthmarketscience.rmiio.RemoteInputStreamServer;
-import com.healthmarketscience.rmiio.SimpleRemoteInputStream;
+import com.healthmarketscience.rmiio.SerializableInputStream;
import de.hsofttec.t5components.annotations.SetterGetter;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
-import fr.cemagref.simexplorer.is.service.SimExplorerServiceStream;
import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException;
import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
@@ -52,32 +50,28 @@
*
* @return the object
*/
- public Object onSuccess() {
+ public Object onSuccess() throws Exception {
MetaData mde = null;
if (_fileEA != null) {
- SimExplorerServiceStream zipStream = new SimExplorerServiceStream(
- _fileEA.getStream());
+ SerializableInputStream zipStream = new SerializableInputStream(_fileEA.getStream());
// RemoteInputStreamServer zipRemoteStream = new SimpleRemoteInputStream(
// _fileEA.getStream());
try {
// mde = RemoteStorageService.getStorageService().saveElement(
// getToken(), zipRemoteStream.export());
- mde = RemoteStorageService.getStorageService().saveElement(
- getToken(), zipStream);
+ mde = RemoteStorageService.getStorageService().saveElement(getToken(), zipStream);
} catch (Exception e) {
throw new SimExplorerWebException(e);
}
} else {
if (_fileLib != null) {
- SimExplorerServiceStream zipStream = new SimExplorerServiceStream(
- _fileLib.getStream());
+ SerializableInputStream zipStream = new SerializableInputStream(_fileLib.getStream());
// RemoteInputStreamServer zipRemoteStream = new SimpleRemoteInputStream(
// _fileLib.getStream());
try {
// mde = RemoteStorageService.getStorageService().saveElement(
// getToken(), zipRemoteStream.export());
- mde = RemoteStorageService.getStorageService().saveElement(
- getToken(), zipStream);
+ mde = RemoteStorageService.getStorageService().saveElement(getToken(), zipStream);
} catch (Exception e) {
throw new SimExplorerWebException();
}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Install.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Install.java 2008-02-14 08:45:58 UTC (rev 958)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Install.java 2008-02-14 11:21:05 UTC (rev 959)
@@ -27,6 +27,8 @@
import org.apache.tapestry.annotations.InjectPage;
+import com.healthmarketscience.rmiio.SerializableInputStream;
+
import fr.cemagref.simexplorer.is.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.data.Component;
import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication;
@@ -36,7 +38,6 @@
import fr.cemagref.simexplorer.is.factories.BaseEntityFactory;
import fr.cemagref.simexplorer.is.factories.XmlConstants;
import fr.cemagref.simexplorer.is.service.ElementGenerator;
-import fr.cemagref.simexplorer.is.service.SimExplorerServiceStream;
import fr.cemagref.simexplorer.is.service.ElementGenerator.RandomStream;
import fr.cemagref.simexplorer.is.ui.web.SimExplorerWebException;
import fr.cemagref.simexplorer.is.ui.web.pages.security.SuperAdminPage;
@@ -78,55 +79,45 @@
parentEa = elementGenerator.generateRandomEA();
int v = 2 + r.nextInt(5);
- Version version = new Version(parentEa.getMetaData()
- .getVersion().toString());
+ Version version = new Version(parentEa.getMetaData().getVersion().toString());
for (int j = 0; j < v; j++) {
- ExplorationApplication ea = elementGenerator
- .generateRandomEA();
+ ExplorationApplication ea = elementGenerator.generateRandomEA();
ea.getMetaData().setUuid(parentEa.getMetaData().getUuid());
version = version.incVersion(r.nextInt(3));
ea.getMetaData().setVersion(version.toString());
- Map<Attachment, SimExplorerServiceStream> attachments = new HashMap<Attachment, SimExplorerServiceStream>();
+ Map<Attachment, SerializableInputStream> attachments = new HashMap<Attachment, SerializableInputStream>();
List<Attachment> attachmentsKeys = new ArrayList<Attachment>();
attachmentsKeys.addAll(ea.getMetaData().getAttachments());
Set<Component> components = ea.getComponents();
for (Component component : components) {
- attachmentsKeys.addAll(component.getMetaData()
- .getAttachments());
+ attachmentsKeys.addAll(component.getMetaData().getAttachments());
Set<Library> libraries = component.getLibraries();
for (Library library : libraries) {
- attachmentsKeys.addAll(library.getMetaData()
- .getAttachments());
+ attachmentsKeys.addAll(library.getMetaData().getAttachments());
}
}
Set<ExplorationData> explorations = ea.getExplorations();
for (ExplorationData explorationData : explorations) {
- attachmentsKeys.addAll(explorationData.getMetaData()
- .getAttachments());
+ attachmentsKeys.addAll(explorationData.getMetaData().getAttachments());
}
for (Attachment attachment : attachmentsKeys) {
- RandomStream randomStream = elementGenerator
- .generateTextStream();
+ RandomStream randomStream = elementGenerator.generateTextStream();
attachment.setDataHash(randomStream.getMd5());
- SimExplorerServiceStream remoteStream = new SimExplorerServiceStream(
- randomStream.getStream());
+ SerializableInputStream remoteStream = new SerializableInputStream(randomStream.getStream());
attachments.put(attachment, remoteStream);
}
- InputStream xmlStream = BaseEntityFactory.getFactory(
- ExplorationApplication.class).saveElement(
+ InputStream xmlStream = BaseEntityFactory.getFactory(ExplorationApplication.class).saveElement(
XmlConstants.VALUE_METADATA_TYPE_EA, ea);
- SimExplorerServiceStream xmlRemoteStream = new SimExplorerServiceStream(
- xmlStream);
- RemoteStorageService.getStorageService().saveElement(
- getToken(), xmlRemoteStream, attachments);
+ SerializableInputStream xmlRemoteStream = new SerializableInputStream(xmlStream);
+ RemoteStorageService.getStorageService().saveElement(getToken(), xmlRemoteStream, attachments);
}
}
1
0
r958 - trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: tchemit
Date: 2008-02-14 08:45:58 +0000 (Thu, 14 Feb 2008)
New Revision: 958
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx
Log:
harmonisation avec onglet de synchronisation
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx 2008-02-14 08:43:13 UTC (rev 957)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx 2008-02-14 08:45:58 UTC (rev 958)
@@ -55,7 +55,7 @@
</row>
<row fill="both" weightx="1" weighty="1">
<cell columns="2">
- <JSplitPane id='splitOne' orientation="horizontal" resizeWeight="0.5" oneTouchExpandable='true'>
+ <JSplitPane id='splitOne' orientation="horizontal" resizeWeight="0.45" oneTouchExpandable='true'>
<JScrollPane columnHeaderView='{toolbarNavigation}'>
<JTree id="navigationTree" model='{new javax.swing.tree.DefaultTreeModel(null)}'/>
</JScrollPane>
1
0
r957 - trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: tchemit
Date: 2008-02-14 08:43:13 +0000 (Thu, 14 Feb 2008)
New Revision: 957
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx
Log:
harmonisation avec onglet de synchronisation
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx 2008-02-14 08:31:14 UTC (rev 956)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx 2008-02-14 08:43:13 UTC (rev 957)
@@ -1,18 +1,19 @@
<JAXXTab>
<style source="common.css"/>
<row>
- <cell fill='horizontal'>
+ <cell>
<Table id='toolbarNavigation' styleClass='border' insets='0,0,0,0'>
<row>
- <cell anchor='west' insets='0,5,0,0'>
- <JLabel id='detailHeaderFromLocal' opaque='false' visible='false' icon='{createImageIcon("action/local.png")}'/>
+ <cell anchor='west' insets='0,2,0,0' weightx="1" fill='horizontal' >
+ <JLabel id='detailHeaderFromLocal' opaque='false' visible='false'
+ text='simexplorer.node.navigation.local'
+ icon='{createImageIcon("action/local.png")}'/>
</cell>
- <cell anchor='west' insets='0,5,0,0'>
- <JLabel id='detailHeaderFromRemote' opaque='false' visible='false' icon='{createImageIcon("action/remote.png")}'/>
- </cell>
- <cell weightx="1" fill='horizontal' insets='0,10,0,0'>
- <JLabel id='navigationHeader' text='simexplorer.node.navigation'/>
- </cell>
+ <cell anchor='west' insets='0,2,0,0' weightx="1" fill='horizontal' >
+ <JLabel id='detailHeaderFromRemote' opaque='false'
+ text='simexplorer.node.navigation.remote'
+ visible='false' icon='{createImageIcon("action/remote.png")}'/>
+ </cell>
<cell anchor="east" insets='0,0,0,0'>
<JToolBar>
<JButton id='historyPrevious'/>
@@ -54,7 +55,7 @@
</row>
<row fill="both" weightx="1" weighty="1">
<cell columns="2">
- <JSplitPane id='splitOne' orientation="horizontal" resizeWeight="0.4" oneTouchExpandable='true'>
+ <JSplitPane id='splitOne' orientation="horizontal" resizeWeight="0.5" oneTouchExpandable='true'>
<JScrollPane columnHeaderView='{toolbarNavigation}'>
<JTree id="navigationTree" model='{new javax.swing.tree.DefaultTreeModel(null)}'/>
</JScrollPane>
1
0
r956 - trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
by tchemit@users.labs.libre-entreprise.org 14 Feb '08
14 Feb '08
Author: tchemit
Date: 2008-02-14 08:31:14 +0000 (Thu, 14 Feb 2008)
New Revision: 956
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx
Log:
suppression des panels qui cassent l'alignement
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx 2008-02-14 08:10:58 UTC (rev 955)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JDetailTab.jaxx 2008-02-14 08:31:14 UTC (rev 956)
@@ -4,17 +4,15 @@
<cell fill='horizontal'>
<Table id='toolbarNavigation' styleClass='border' insets='0,0,0,0'>
<row>
- <cell anchor='west'>
- <JPanel opaque='false'>
- <JLabel id='detailHeaderFromLocal' opaque='false' visible='false' icon='{createImageIcon("action/local.png")}'/>
- <JLabel id='detailHeaderFromRemote' opaque='false' visible='false' icon='{createImageIcon("action/remote.png")}'/>
- </JPanel>
+ <cell anchor='west' insets='0,5,0,0'>
+ <JLabel id='detailHeaderFromLocal' opaque='false' visible='false' icon='{createImageIcon("action/local.png")}'/>
</cell>
- <cell weightx="1" fill='horizontal'>
- <JPanel opaque='false' >
- <JLabel id='navigationHeader' text='simexplorer.node.navigation'/>
- </JPanel>
+ <cell anchor='west' insets='0,5,0,0'>
+ <JLabel id='detailHeaderFromRemote' opaque='false' visible='false' icon='{createImageIcon("action/remote.png")}'/>
</cell>
+ <cell weightx="1" fill='horizontal' insets='0,10,0,0'>
+ <JLabel id='navigationHeader' text='simexplorer.node.navigation'/>
+ </cell>
<cell anchor="east" insets='0,0,0,0'>
<JToolBar>
<JButton id='historyPrevious'/>
@@ -31,7 +29,7 @@
<cell>
<Table id='toolbarDetail' styleClass='border' background='{Color.WHITE}' insets='0,0,0,0'>
<row>
- <cell anchor='west'>
+ <cell anchor='west' fill="vertical">
<JToolBar>
<JButton id='detailToTree'/>
</JToolBar>
1
0