Author: tchemit Date: 2008-02-08 15:15:27 +0000 (Fri, 08 Feb 2008) New Revision: 753 Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java Log: downloads + refactor Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java 2008-02-08 15:15:03 UTC (rev 752) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java 2008-02-08 15:15:27 UTC (rev 753) @@ -44,6 +44,7 @@ import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.SwingUtilities; +import javax.swing.JButton; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeNode; import java.awt.Dimension; @@ -190,42 +191,52 @@ * @param node le node sélectionné dans l'arbre de navigation */ public static void refreshDetailActions(JApplicationDetailTab ui, LoggableElementTreeNode node) { - // refresh download button - refreshDownloadAction(ui, node); + // refresh download LoggableElement button + refreshDownloadLoggableElementAction(ui, node); + // refresh download Attachment button + refreshDownloadAttachmentAction(ui, node); // refresh delete button refreshDeleteAction(ui, node); // refresh export button refreshExportAction(ui, node); + // refresh tree buttons + refreshTreeActions(ui, node); } - protected static void refreshDownloadAction(JApplicationDetailTab ui, LoggableElementTreeNode node) { - boolean download = LoggableElementTreeHelper.canDownload(node); - ui.getDownload().setEnabled(download); - String tooltip = null; - if (download) { - tooltip = _("simexplorer.action.dowload2", node.getUserObject()); - } - ui.getDownload().setToolTipText(tooltip); + protected static void refreshTreeActions(JApplicationDetailTab ui, LoggableElementTreeNode node) { + + String tooltip; + boolean enabled = node!=null && !node.isLeaf() && node.getChildCount()>0; + tooltip = !enabled?null: _("simexplorer.action.application.collapseAll2", node.getUserObject()); + updateButton(ui.getCollapseAllApplication(), enabled, tooltip); + tooltip = !enabled?null: _("simexplorer.action.application.expandAll2.tooltip", node.getUserObject()); + updateButton(ui.getExpandAllApplication(), enabled, tooltip); } + protected static void refreshDownloadLoggableElementAction(JApplicationDetailTab ui, LoggableElementTreeNode node) { + //TODO Use model instead of ui + boolean enabled = LoggableElementTreeHelper.isLoggableElement(node) || LoggableElementTreeHelper.canDownload(node); + String tooltip = !enabled?null:_("simexplorer.action.dowloadLoggableElement2", node.getUserObject()); + updateButton(ui.getDownloadLoggableElement(), enabled, tooltip); + } + + protected static void refreshDownloadAttachmentAction(JApplicationDetailTab ui, LoggableElementTreeNode node) { + //TODO Use model instead of ui + boolean enabled = LoggableElementTreeHelper.isLoggableElement(node); + String tooltip = !enabled?null:_("simexplorer.action.dowloadAttachment2", node.getUserObject()); + updateButton(ui.getDownloadAttachment(), enabled, tooltip); + } + protected static void refreshDeleteAction(JApplicationDetailTab ui, LoggableElementTreeNode node) { - boolean delete = LoggableElementTreeHelper.canDelete(node); - ui.getDelete().setEnabled(delete); - String tooltip = null; - if (delete) { - tooltip = _("simexplorer.action.delete2", node.getUserObject()); - } - ui.getDelete().setToolTipText(tooltip); + boolean enabled = LoggableElementTreeHelper.canDelete(node); + String tooltip = !enabled?null:_("simexplorer.action.delete2", node.getUserObject()); + updateButton(ui.getDelete(), enabled, tooltip); } protected static void refreshExportAction(JApplicationDetailTab ui, LoggableElementTreeNode node) { - boolean export = LoggableElementTreeHelper.canExport(node); - ui.getExportApplication().setEnabled(export); - String tooltip = null; - if (export) { - tooltip = _("simexplorer.action.export2", node.getUserObject()); - } - ui.getExportApplication().setToolTipText(tooltip); + boolean enabled = LoggableElementTreeHelper.canExport(node); + String tooltip = !enabled?null:_("simexplorer.action.export2", node.getUserObject()); + updateButton(ui.getExportApplication(), enabled, tooltip); } protected static void refreshPagination(JApplicationListTab ui, PaginationModel pagination) { @@ -267,6 +278,11 @@ ui.getCurrentPage().setEnabled(b); } + protected static void updateButton(JButton button, boolean enabled, String tooltip) { + button.setEnabled(enabled); + button.setToolTipText(tooltip); + } + public static void resetHistory(JApplicationDetailTab ui, DetailTabModel model, DefaultComboBoxModel historyModel) { historyModel.removeAllElements(); LoggableElement selectedNode = model.getSelectedNode(); @@ -333,10 +349,8 @@ listModel.setSize(0); listModel.trimToSize(); if (attachments.isEmpty()) { - ui.getDetailAttachmentsHeader().setText(_("simexplorer.node.noattachments")); - Dimension dimHead = ui.getDetailHeaderAttachmentsPanel().getPreferredSize(); - ui.getScrollAttachments().setPreferredSize(new Dimension((int) dimHead.getWidth(), (int) (dimHead.getHeight()+3))); - listAttachments.setVisible(false); + ui.getDetailAttachmentsHeader().setText(_("simexplorer.node.noattachments")); + ui.getScrollAttachments().setVisible(false); } else { ui.getDetailAttachmentsHeader().setText(_("simexplorer.node.attachments", attachments.size())); for (Attachment attachment : attachments) { @@ -347,16 +361,15 @@ if (nbRows > 5) { nbRows = 5; } - Dimension dimHead = ui.getDetailHeaderAttachmentsPanel().getPreferredSize(); - listAttachments.setVisible(true); + //Dimension dimHead = ui.getDetailHeaderAttachmentsPanel().getPreferredSize(); + ui.getScrollAttachments().setVisible(true); Rectangle rect = listAttachments.getUI().getCellBounds(listAttachments, 0, 0); - double h = rect.getHeight(); - ui.getScrollAttachments().setPreferredSize(new Dimension((int) dimHead.getWidth(), (int) (dimHead.getHeight() +3+ nbRows * h))); + ui.getScrollAttachments().setPreferredSize(new Dimension((int) rect.getWidth()-4, (int) (3+ nbRows * rect.getHeight()))); } table.invalidate(); listAttachments.invalidate(); - ui.getScrollPane().repaint(); + ui.getScrollPane().invalidate(); ui.repaint(); }