You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2018/01/02 19:52:05 UTC

svn commit: r1819875 - in /chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench: RepositoryInfoFrame.java swing/InfoPanel.java

Author: fmui
Date: Tue Jan  2 19:52:04 2018
New Revision: 1819875

URL: http://svn.apache.org/viewvc?rev=1819875&view=rev
Log:
Workbench: added reload button to repository info window

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/InfoPanel.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java?rev=1819875&r1=1819874&r2=1819875&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java Tue Jan  2 19:52:04 2018
@@ -20,13 +20,22 @@ package org.apache.chemistry.opencmis.wo
 
 import static org.apache.chemistry.opencmis.commons.impl.CollectionsHelper.isNotEmpty;
 
+import java.awt.BorderLayout;
 import java.awt.Component;
+import java.awt.Cursor;
 import java.awt.Dimension;
+import java.awt.FlowLayout;
 import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.GregorianCalendar;
 import java.util.Map;
 
 import javax.swing.Icon;
+import javax.swing.JButton;
+import javax.swing.JComponent;
 import javax.swing.JFrame;
+import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
 import javax.swing.JTree;
@@ -36,6 +45,7 @@ import javax.swing.tree.DefaultTreeCellR
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.TreeSelectionModel;
 
+import org.apache.chemistry.opencmis.client.api.Session;
 import org.apache.chemistry.opencmis.commons.data.AclCapabilities;
 import org.apache.chemistry.opencmis.commons.data.ExtensionFeature;
 import org.apache.chemistry.opencmis.commons.data.PermissionMapping;
@@ -56,6 +66,7 @@ public class RepositoryInfoFrame extends
     private static final String WINDOW_TITLE = "CMIS Repository Info";
 
     private final ClientModel model;
+    private JComponent infoPanel;
 
     public RepositoryInfoFrame(ClientModel model) {
         super();
@@ -72,6 +83,8 @@ public class RepositoryInfoFrame extends
         setPreferredSize(new Dimension((int) (screenSize.getWidth() / 2.5), (int) (screenSize.getHeight() / 1.5)));
         setMinimumSize(new Dimension(200, 60));
 
+        setLayout(new BorderLayout());
+
         RepositoryInfo repInfo = null;
         try {
             repInfo = model.getRepositoryInfo();
@@ -81,7 +94,36 @@ public class RepositoryInfoFrame extends
             return;
         }
 
-        add(new JScrollPane(new RepositoryInfoPanel(model, repInfo)));
+        infoPanel = new JScrollPane(new RepositoryInfoPanel(model, repInfo, -1));
+        add(infoPanel, BorderLayout.CENTER);
+
+        final JPanel inputPanel = new JPanel(new FlowLayout());
+        add(inputPanel, BorderLayout.PAGE_END);
+
+        JButton reloadButton = new JButton("Reload");
+        reloadButton.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                try {
+                    setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+
+                    Session session = model.getClientSession().getSession();
+                    String repId = session.getRepositoryInfo().getId();
+                    RepositoryInfo repInfo = session.getBinding().getRepositoryService().getRepositoryInfo(repId, null);
+
+                    remove(infoPanel);
+                    infoPanel = new JScrollPane(new RepositoryInfoPanel(model, repInfo, System.currentTimeMillis()));
+                    add(infoPanel, BorderLayout.CENTER);
+
+                    validate();
+                } finally {
+                    setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+                }
+            }
+        });
+        inputPanel.add(reloadButton, BorderLayout.LINE_END);
+
+        getRootPane().setDefaultButton(reloadButton);
 
         ClientHelper.installEscapeBinding(this, getRootPane(), true);
 
@@ -97,11 +139,18 @@ public class RepositoryInfoFrame extends
         private static final long serialVersionUID = 1L;
 
         private final RepositoryInfo repInfo;
+        private final GregorianCalendar lastUpdate;
 
-        public RepositoryInfoPanel(ClientModel model, RepositoryInfo repInfo) {
+        public RepositoryInfoPanel(ClientModel model, RepositoryInfo repInfo, long lastUpdate) {
             super(model);
 
             this.repInfo = repInfo;
+            if (lastUpdate >= 0) {
+                this.lastUpdate = new GregorianCalendar();
+                this.lastUpdate.setTimeInMillis(lastUpdate);
+            } else {
+                this.lastUpdate = null;
+            }
             createGUI();
         }
 
@@ -242,7 +291,7 @@ public class RepositoryInfoFrame extends
                     JTable permTable = new JTable(data, new String[] { "Permission", "Description" });
                     permTable.setFillsViewportHeight(true);
                     permTable.setRowHeight((int) (getFontMetrics(getFont()).getHeight() * 1.1));
-                    addComponent("Permissions:", new JScrollPane(permTable));
+                    addComponent("Permissions:", createScrollePane(permTable));
                 }
 
                 if (cap.getPermissionMapping() != null) {
@@ -258,7 +307,7 @@ public class RepositoryInfoFrame extends
                     JTable permMapTable = new JTable(data, new String[] { "Key", "Permissions" });
                     permMapTable.setFillsViewportHeight(true);
                     permMapTable.setRowHeight((int) (getFontMetrics(getFont()).getHeight() * 1.1));
-                    addComponent("Permission mapping:", new JScrollPane(permMapTable));
+                    addComponent("Permission mapping:", createScrollePane(permMapTable));
                 }
             }
 
@@ -302,15 +351,25 @@ public class RepositoryInfoFrame extends
 
                 extensionFeaturesTree.setModel(new DefaultTreeModel(extFeatRootNode));
 
-                addComponent("Extension Features:", new JScrollPane(extensionFeaturesTree));
+                addComponent("Extension Features:", createScrollePane(extensionFeaturesTree));
             }
 
             if (isNotEmpty(repInfo.getExtensions())) {
-                addComponent("Extensions:", new JScrollPane(new ExtensionsTree(repInfo.getExtensions())));
+                addComponent("Extensions:", createScrollePane(new ExtensionsTree(repInfo.getExtensions())));
             }
 
+            addSeparator();
+            addLine("Last update:").setText(lastUpdate != null ? ClientHelper.getDateString(lastUpdate) : "(session)");
+
             regenerateGUI();
         }
+        
+        private JScrollPane createScrollePane(Component comp) {
+            JScrollPane pane = new JScrollPane(comp);
+            pane.setPreferredSize(new Dimension(pane.getPreferredSize().width, WorkbenchScale.scaleInt(200)));
+            
+            return pane;
+        }
 
         private void appendToString(StringBuilder sb, String str) {
             if (sb.length() > 0) {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/InfoPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/InfoPanel.java?rev=1819875&r1=1819874&r2=1819875&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/InfoPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/InfoPanel.java Tue Jan  2 19:52:04 2018
@@ -251,15 +251,17 @@ public abstract class InfoPanel extends
 
             Component comp = parent.getComponent(r * cols + 1);
             if (comp instanceof JTextField || comp instanceof JLabel) {
-                labelConstraints.setHeight(height);
                 valueConstraints.setConstraint(SpringLayout.BASELINE,
                         labelConstraints.getConstraint(SpringLayout.BASELINE));
             } else if (comp instanceof JSeparator) {
                 height = Spring.scale(height, 0.5f);
                 valueConstraints.setHeight(height);
-                valueConstraints.setY(Spring.sum(y, Spring.constant(minHeight / 4)));
+                valueConstraints.setY(Spring.sum(y, Spring.sum(Spring.scale(height, 0.5f),
+                        Spring.minus(Spring.constant((int) comp.getPreferredSize().getHeight() / 2)))));
             }
 
+            labelConstraints.setHeight(height);
+
             y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad)));
         }