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 2015/07/27 18:08:28 UTC
svn commit: r1692905 - in
/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench:
./ details/ swing/
Author: fmui
Date: Mon Jul 27 16:08:27 2015
New Revision: 1692905
URL: http://svn.apache.org/r1692905
Log:
Workbench improvements
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/DiscoverLoginTab.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/LoginDialog.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/PropertyTable.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CollectionRenderer.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java?rev=1692905&r1=1692904&r2=1692905&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientHelper.java Mon Jul 27 16:08:27 2015
@@ -642,6 +642,15 @@ public final class ClientHelper {
}
public static Console openConsole(final Component parent, final ClientModel model, final URI file) {
+ return openConsole(parent, model, file, null);
+ }
+
+ public static Console openConsole(final Component parent, final ClientModel model, final String soureCode) {
+ return openConsole(parent, model, null, soureCode);
+ }
+
+ public static Console openConsole(final Component parent, final ClientModel model, final URI file,
+ final String soureCode) {
try {
parent.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
@@ -694,7 +703,11 @@ public final class ClientHelper {
});
cmisMenu.add(menuItem);
- console.getInputArea().setText(readFileAndRemoveHeader(file));
+ if (file != null) {
+ console.getInputArea().setText(readFileAndRemoveHeader(file));
+ } else if (soureCode != null) {
+ console.getInputArea().setText(soureCode);
+ }
return console;
} catch (Exception ex) {
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/DiscoverLoginTab.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/DiscoverLoginTab.java?rev=1692905&r1=1692904&r2=1692905&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/DiscoverLoginTab.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/DiscoverLoginTab.java Mon Jul 27 16:08:27 2015
@@ -44,6 +44,7 @@ import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
+import javax.swing.SwingUtilities;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
@@ -130,10 +131,15 @@ public class DiscoverLoginTab extends Ab
}
@Override
+ public boolean transferSessionParametersToExpertTab() {
+ return true;
+ }
+
+ @Override
public Map<String, String> getSessionParameters() {
int row = authTable.getSelectedRow();
if (row < 0) {
- return null;
+ return Collections.emptyMap();
}
// compile session parameters
@@ -184,6 +190,19 @@ public class DiscoverLoginTab extends Ab
final JPopupMenu popup = new JPopupMenu();
+ // copy to expert login
+ JMenuItem expertLoginMenuItem = new JMenuItem("Transfer to expert login tab");
+ popup.add(expertLoginMenuItem);
+
+ expertLoginMenuItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ((LoginDialog) SwingUtilities.getRoot(CmisAuthenticationTable.this)).switchToExpertTab();
+ }
+ });
+
+ popup.addSeparator();
+
// copy all endpoints to clipboard
JMenuItem allEnpointsMenuItem = new JMenuItem("Copy all endpoints to clipboard");
popup.add(allEnpointsMenuItem);
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/LoginDialog.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/LoginDialog.java?rev=1692905&r1=1692904&r2=1692905&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/LoginDialog.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/LoginDialog.java Mon Jul 27 16:08:27 2015
@@ -31,7 +31,6 @@ import java.awt.event.ActionListener;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-import java.util.Map;
import java.util.ServiceLoader;
import javax.swing.BorderFactory;
@@ -115,18 +114,6 @@ public class LoginDialog extends JDialog
public void actionPerformed(ActionEvent e) {
repositoryBox.removeAllItems();
- if (currentTab == discoverLoginTab) {
- Map<String, String> paramters = currentTab.getSessionParameters();
- if (paramters == null) {
- JOptionPane.showMessageDialog(LoginDialog.this, "Select an endpoint.", "No endpoint selected",
- JOptionPane.INFORMATION_MESSAGE);
- } else {
- expertLoginTab.setSessionParameters(paramters);
- loginTabs.setSelectedComponent(expertLoginTab);
- }
- return;
- }
-
try {
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
@@ -254,6 +241,12 @@ public class LoginDialog extends JDialog
}
}
+ if (loginTabs.getSelectedComponent() == discoverLoginTab) {
+ loadRepositoryButton.setEnabled(false);
+ } else {
+ loadRepositoryButton.setEnabled(true);
+ }
+
currentTab = (AbstractLoginTab) loginTabs.getSelectedComponent();
}
});
@@ -318,6 +311,21 @@ public class LoginDialog extends JDialog
return clientSession;
}
+ public void switchToBasicTab() {
+ loginTabs.setSelectedComponent(basicLoginTab);
+ }
+
+ public void switchToExpertTab() {
+ if (currentTab.transferSessionParametersToExpertTab()) {
+ expertLoginTab.setSessionParameters(currentTab.getSessionParameters());
+ }
+ loginTabs.setSelectedComponent(expertLoginTab);
+ }
+
+ public void switchToDiscoverTab() {
+ loginTabs.setSelectedComponent(discoverLoginTab);
+ }
+
public boolean isCanceled() {
return canceled;
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java?rev=1692905&r1=1692904&r2=1692905&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ObjectPanel.java Mon Jul 27 16:08:27 2015
@@ -86,6 +86,7 @@ public class ObjectPanel extends InfoPan
private JPanel buttonPanel;
private JButton refreshButton;
private JButton checkButton;
+ private JButton consoleButton;
private JPanel scriptPanel;
private JButton scriptOpenButton;
private JButton scriptRunButton;
@@ -126,6 +127,7 @@ public class ObjectPanel extends InfoPan
aclExactField.setText("");
refreshButton.setEnabled(false);
checkButton.setEnabled(false);
+ consoleButton.setEnabled(false);
scriptPanel.setVisible(false);
} else {
try {
@@ -220,6 +222,7 @@ public class ObjectPanel extends InfoPan
refreshButton.setEnabled(true);
checkButton.setEnabled(true);
+ consoleButton.setEnabled(true);
if (object instanceof Document) {
String name = object.getName().toLowerCase(Locale.ENGLISH);
@@ -266,6 +269,9 @@ public class ObjectPanel extends InfoPan
checkButton = new JButton("Check specification compliance");
checkButton.setEnabled(false);
buttonPanel.add(checkButton);
+ consoleButton = new JButton("Open console");
+ consoleButton.setEnabled(false);
+ buttonPanel.add(consoleButton);
scriptPanel = addComponent("", new JPanel(new BorderLayout()));
scriptPanel.setOpaque(false);
@@ -325,6 +331,21 @@ public class ObjectPanel extends InfoPan
}
});
+ consoleButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ try {
+ setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+
+ ClientHelper.openConsole(ObjectPanel.this, getClientModel(),
+ createGroovySourceCode(getClientModel().getCurrentObject()));
+ } catch (Exception ex) {
+ ClientHelper.showError(null, ex);
+ } finally {
+ setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+ }
+ });
+
scriptOpenButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
@@ -334,7 +355,7 @@ public class ObjectPanel extends InfoPan
String name = doc.getName().toLowerCase(Locale.ENGLISH);
if (name.endsWith(".groovy")) {
File file = ClientHelper.createTempFileFromDocument(doc, null);
- Console console = ClientHelper.openConsole(ObjectPanel.this, getClientModel(), null);
+ Console console = ClientHelper.openConsole(ObjectPanel.this, getClientModel(), (String) null);
if (console != null) {
console.loadScriptFile(file);
}
@@ -381,6 +402,46 @@ public class ObjectPanel extends InfoPan
return ((Document) document).getContentUrl();
}
+ private String createGroovySourceCode(CmisObject object) {
+ StringBuilder sb = new StringBuilder(512);
+
+ sb.append("import org.apache.chemistry.opencmis.commons.*\n");
+ sb.append("import org.apache.chemistry.opencmis.commons.data.*\n");
+ sb.append("import org.apache.chemistry.opencmis.commons.enums.*\n");
+ sb.append("import org.apache.chemistry.opencmis.client.api.*\n\n");
+
+ sb.append("// ");
+ sb.append(object.getName());
+ sb.append('\n');
+
+ switch (object.getBaseTypeId()) {
+ case CMIS_DOCUMENT:
+ sb.append("Document doc = (Document)");
+ break;
+ case CMIS_FOLDER:
+ sb.append("Folder folder = (Folder)");
+ break;
+ case CMIS_POLICY:
+ sb.append("Policy policy = (Policy)");
+ break;
+ case CMIS_RELATIONSHIP:
+ sb.append("Relationship rel = (Relationship)");
+ break;
+ case CMIS_ITEM:
+ sb.append("Item item = (Item)");
+ break;
+ default:
+ sb.append("CmisObject obj =");
+ break;
+ }
+
+ sb.append(" session.getObject(\"");
+ sb.append(object.getId().replaceAll("\"", "\\\""));
+ sb.append("\");\n\n");
+
+ return sb.toString();
+ }
+
private static class JTextAreaWriter extends Writer {
private final JTextArea textArea;
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/PropertyTable.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/PropertyTable.java?rev=1692905&r1=1692904&r2=1692905&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/PropertyTable.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/PropertyTable.java Mon Jul 27 16:08:27 2015
@@ -20,22 +20,27 @@ package org.apache.chemistry.opencmis.wo
import java.awt.event.MouseEvent;
import java.util.Collection;
+import java.util.List;
+import org.apache.chemistry.opencmis.client.api.CmisObject;
+import org.apache.chemistry.opencmis.client.api.ObjectType;
import org.apache.chemistry.opencmis.client.api.Property;
import org.apache.chemistry.opencmis.commons.enums.Action;
import org.apache.chemistry.opencmis.workbench.PropertyEditorFrame;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
+import org.apache.chemistry.opencmis.workbench.swing.CollectionRenderer;
public class PropertyTable extends AbstractDetailsTable {
private static final long serialVersionUID = 1L;
- private static final String[] COLUMN_NAMES = { "Name", "Id", "Type", "Value" };
- private static final int[] COLUMN_WIDTHS = { 200, 200, 80, 300 };
+ private static final String[] COLUMN_NAMES = { "Name", "Type", "Value", "Property ID", "Object Type ID" };
+ private static final int[] COLUMN_WIDTHS = { 200, 80, 400, 200, 200 };
public PropertyTable(ClientModel model) {
super();
init(model, COLUMN_NAMES, COLUMN_WIDTHS);
+ setDefaultRenderer(Collection.class, new CollectionRenderer(true));
}
@Override
@@ -50,17 +55,20 @@ public class PropertyTable extends Abstr
}
public Object getDetailValueAt(int rowIndex, int columnIndex) {
- Property<?> property = getObject().getProperties().get(rowIndex);
+ CmisObject obj = getObject();
+ Property<?> property = obj.getProperties().get(rowIndex);
switch (columnIndex) {
case 0:
return property.getDefinition().getDisplayName();
case 1:
- return property.getId();
- case 2:
return property.getDefinition().getPropertyType().value();
- case 3:
+ case 2:
return property.getValues();
+ case 3:
+ return property.getId();
+ case 4:
+ return findObjectType(obj, property.getId());
default:
}
@@ -69,10 +77,28 @@ public class PropertyTable extends Abstr
@Override
public Class<?> getDetailColumClass(int columnIndex) {
- if (columnIndex == 3) {
+ if (columnIndex == 2) {
return Collection.class;
}
return super.getDetailColumClass(columnIndex);
}
+
+ private String findObjectType(CmisObject obj, String propertyId) {
+ List<ObjectType> types = obj.findObjectType(propertyId);
+ if (types == null || types.isEmpty()) {
+ return "???";
+ }
+
+ StringBuilder sb = new StringBuilder(64);
+
+ for (ObjectType type : types) {
+ if (sb.length() > 0) {
+ sb.append(" ,");
+ }
+ sb.append(type.getId());
+ }
+
+ return sb.toString();
+ }
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CollectionRenderer.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/CollectionRenderer.java?rev=1692905&r1=1692904&r2=1692905&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CollectionRenderer.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CollectionRenderer.java Mon Jul 27 16:08:27 2015
@@ -35,6 +35,8 @@ public class CollectionRenderer extends
private static final String NOT_SET_COLOR;
+ private boolean bold = false;
+
static {
Color notSetColor = UIManager.getColor("Label.disabledText");
if (notSetColor != null) {
@@ -49,6 +51,11 @@ public class CollectionRenderer extends
super();
}
+ public CollectionRenderer(boolean bold) {
+ super();
+ this.bold = bold;
+ }
+
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
@@ -69,7 +76,8 @@ public class CollectionRenderer extends
Collection<?> col = (Collection<?>) value;
if (col == null || col.isEmpty()) {
- super.setValue("<html><span><font color=" + NOT_SET_COLOR + "><i>not set</i></font></span>");
+ super.setValue("<html><span><font color=" + NOT_SET_COLOR + "><i>" + (bold ? "<b>" : "") + "not set</i>"
+ + (bold ? "</b>" : "") + "</font></span>");
return;
}
@@ -80,6 +88,9 @@ public class CollectionRenderer extends
for (Object o : col) {
sb.append("<span>"); // workaround for a bug in Swing
+ if (bold) {
+ sb.append("<b>");
+ }
if (o == null) {
sb.append("<i>null</i>");
} else if (o instanceof GregorianCalendar) {
@@ -96,6 +107,9 @@ public class CollectionRenderer extends
} else {
ClientHelper.encodeHtml(sb, o.toString());
}
+ if (bold) {
+ sb.append("</b>");
+ }
sb.append("</span><br/>");
}
// sb.append("</html>");