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 2016/09/25 10:29:03 UTC
svn commit: r1762181 [2/3] - in
/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench:
./ actions/ details/ model/ swing/ types/ worker/
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CheckInPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CheckInPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CheckInPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CheckInPanel.java Sun Sep 25 10:29:02 2016
@@ -65,7 +65,7 @@ public class CheckInPanel extends Action
}
@Override
- public boolean doAction() throws FileNotFoundException {
+ public void doAction() throws FileNotFoundException {
ContentStream content = getClientModel().createContentStream(filenameField.getText());
try {
@@ -74,6 +74,6 @@ public class CheckInPanel extends Action
IOUtils.closeQuietly(content);
}
- return false;
+ reload(false);
}
}
\ No newline at end of file
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CheckOutPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CheckOutPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CheckOutPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CheckOutPanel.java Sun Sep 25 10:29:02 2016
@@ -50,8 +50,8 @@ public class CheckOutPanel extends Actio
}
@Override
- public boolean doAction() {
+ public void doAction() {
((Document) getObject()).checkOut();
- return true;
+ reload(true);
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CopyPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CopyPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CopyPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/CopyPanel.java Sun Sep 25 10:29:02 2016
@@ -64,9 +64,10 @@ public class CopyPanel extends ActionPan
}
@Override
- public boolean doAction() {
+ public void doAction() {
ObjectId targetFolderId = new ObjectIdImpl(targetFolderField.getText());
((Document) getObject()).copy(targetFolderId);
- return true;
+
+ reload(true);
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeleteContentStreamPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeleteContentStreamPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeleteContentStreamPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeleteContentStreamPanel.java Sun Sep 25 10:29:02 2016
@@ -50,8 +50,8 @@ public class DeleteContentStreamPanel ex
}
@Override
- public boolean doAction() {
+ public void doAction() {
((Document) getObject()).deleteContentStream(false);
- return true;
+ reload(true);
}
}
\ No newline at end of file
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeletePanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeletePanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeletePanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeletePanel.java Sun Sep 25 10:29:02 2016
@@ -23,6 +23,7 @@ import javax.swing.JCheckBox;
import org.apache.chemistry.opencmis.commons.enums.Action;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
import org.apache.chemistry.opencmis.workbench.swing.ActionPanel;
+import org.apache.chemistry.opencmis.workbench.worker.DeleteWorker;
public class DeletePanel extends ActionPanel {
@@ -55,8 +56,14 @@ public class DeletePanel extends ActionP
}
@Override
- public boolean doAction() {
- getObject().delete(allVersionsBox.isSelected());
- return false;
+ public void doAction() {
+ DeleteWorker worker = new DeleteWorker(this, getObject(), allVersionsBox.isSelected()) {
+ @Override
+ protected void done() {
+ super.done();
+ reload(false);
+ }
+ };
+ worker.executeTask();
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeleteTreePanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeleteTreePanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeleteTreePanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DeleteTreePanel.java Sun Sep 25 10:29:02 2016
@@ -18,17 +18,15 @@
*/
package org.apache.chemistry.opencmis.workbench.actions;
-import java.util.List;
-
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.commons.enums.Action;
import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
import org.apache.chemistry.opencmis.workbench.swing.ActionPanel;
+import org.apache.chemistry.opencmis.workbench.worker.DeleteWorker;
public class DeleteTreePanel extends ActionPanel {
@@ -71,22 +69,15 @@ public class DeleteTreePanel extends Act
}
@Override
- public boolean doAction() {
- List<String> ids = ((Folder) getObject()).deleteTree(allVersionsBox.isSelected(),
- (UnfileObject) unfileObjectsBox.getSelectedItem(), continueOnFailureBox.isSelected());
-
- if (ids != null && !ids.isEmpty()) {
- StringBuilder sb = new StringBuilder(128);
-
- sb.append("Delete tree failed! At least the following objects could not be deleted:\n");
-
- for (String id : ids) {
- sb.append('\n');
- sb.append(id);
+ public void doAction() {
+ DeleteWorker worker = new DeleteWorker(this, (Folder) getObject(), allVersionsBox.isSelected(),
+ (UnfileObject) unfileObjectsBox.getSelectedItem(), continueOnFailureBox.isSelected()) {
+ @Override
+ protected void done() {
+ super.done();
+ reload(false);
}
-
- JOptionPane.showMessageDialog(this, sb.toString(), "Delete Tree", JOptionPane.ERROR_MESSAGE);
- }
- return false;
+ };
+ worker.executeTask();
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DownloadPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DownloadPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DownloadPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/DownloadPanel.java Sun Sep 25 10:29:02 2016
@@ -69,13 +69,12 @@ public class DownloadPanel extends Actio
}
@Override
- public boolean doAction() {
+ public void doAction() {
String streamId = streamIdField.getText().trim();
if (streamId.length() == 0) {
streamId = null;
}
ClientHelper.download(this, getObject(), streamId);
- return true;
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/MovePanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/MovePanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/MovePanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/MovePanel.java Sun Sep 25 10:29:02 2016
@@ -70,10 +70,11 @@ public class MovePanel extends ActionPan
}
@Override
- public boolean doAction() {
+ public void doAction() {
ObjectId targetFolderId = new ObjectIdImpl(targetFolderField.getText());
FileableCmisObject before = (FileableCmisObject) getObject();
FileableCmisObject after = before.move(getClientModel().getCurrentFolder(), targetFolderId);
- return before.getId().equals(after.getId());
+
+ reload(before.getId().equals(after.getId()));
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/PropertyUpdatePanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/PropertyUpdatePanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/PropertyUpdatePanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/PropertyUpdatePanel.java Sun Sep 25 10:29:02 2016
@@ -50,8 +50,7 @@ public class PropertyUpdatePanel extends
}
@Override
- public boolean doAction() {
+ public void doAction() {
new PropertyEditorFrame(getClientModel(), getObject());
- return false;
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/RemoveObjectFromFolderPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/RemoveObjectFromFolderPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/RemoveObjectFromFolderPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/RemoveObjectFromFolderPanel.java Sun Sep 25 10:29:02 2016
@@ -82,9 +82,10 @@ public class RemoveObjectFromFolderPanel
}
@Override
- public boolean doAction() {
+ public void doAction() {
ObjectId folderId = getClientModel().getClientSession().getSession().createObjectId(folderField.getText());
((FileableCmisObject) getObject()).removeFromFolder(folderId);
- return true;
+
+ reload(true);
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/RemovePolicyPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/RemovePolicyPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/RemovePolicyPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/RemovePolicyPanel.java Sun Sep 25 10:29:02 2016
@@ -68,8 +68,8 @@ public class RemovePolicyPanel extends A
}
@Override
- public boolean doAction() {
+ public void doAction() {
getObject().removePolicy(new ObjectIdImpl(policyField.getText()), false);
- return true;
+ reload(true);
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/SetContentStreamPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/SetContentStreamPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/SetContentStreamPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/actions/SetContentStreamPanel.java Sun Sep 25 10:29:02 2016
@@ -65,7 +65,7 @@ public class SetContentStreamPanel exten
}
@Override
- public boolean doAction() throws FileNotFoundException {
+ public void doAction() throws FileNotFoundException {
ContentStream content = getClientModel().createContentStream(filenameField.getText());
try {
@@ -75,6 +75,7 @@ public class SetContentStreamPanel exten
IOUtils.closeQuietly(content);
}
}
- return true;
+
+ reload(true);
}
}
\ No newline at end of file
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ACLTable.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/ACLTable.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ACLTable.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/ACLTable.java Sun Sep 25 10:29:02 2016
@@ -18,7 +18,6 @@
*/
package org.apache.chemistry.opencmis.workbench.details;
-import java.awt.Cursor;
import java.awt.event.MouseEvent;
import java.util.Collection;
@@ -26,8 +25,9 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.data.AllowableActions;
import org.apache.chemistry.opencmis.commons.enums.Action;
import org.apache.chemistry.opencmis.workbench.AclEditorFrame;
-import org.apache.chemistry.opencmis.workbench.ClientHelper;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
+import org.apache.chemistry.opencmis.workbench.worker.LoadFolderWorker;
+import org.apache.chemistry.opencmis.workbench.worker.LoadObjectWorker;
public class ACLTable extends AbstractDetailsTable {
@@ -49,15 +49,8 @@ public class ACLTable extends AbstractDe
|| aa.getAllowableActions().contains(Action.CAN_APPLY_ACL)) {
new AclEditorFrame(getClientModel(), getObject());
- try {
- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- getClientModel().reloadObject();
- getClientModel().reloadFolder();
- } catch (Exception ex) {
- ClientHelper.showError(null, ex);
- } finally {
- setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- }
+ LoadObjectWorker.reloadObject(this, getClientModel());
+ LoadFolderWorker.reloadFolder(this, getClientModel());
}
}
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=1762181&r1=1762180&r2=1762181&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 Sun Sep 25 10:29:02 2016
@@ -29,6 +29,7 @@ import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.io.Writer;
+import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -65,6 +66,8 @@ import org.apache.chemistry.opencmis.wor
import org.apache.chemistry.opencmis.workbench.model.ObjectListener;
import org.apache.chemistry.opencmis.workbench.swing.BaseTypeLabel;
import org.apache.chemistry.opencmis.workbench.swing.InfoPanel;
+import org.apache.chemistry.opencmis.workbench.worker.LoadObjectWorker;
+import org.apache.chemistry.opencmis.workbench.worker.TempFileContentWorker;
public class ObjectPanel extends InfoPanel implements ObjectListener {
@@ -80,6 +83,8 @@ public class ObjectPanel extends InfoPan
private InfoList secondaryTypesList;
private JTextField versionLabelField;
private JTextField pwcField;
+ private JTextField mimeTypeField;
+ private JTextField sizeField;
private JTextField contentUrlField;
private InfoList pathsList;
private InfoList allowableActionsList;
@@ -126,6 +131,8 @@ public class ObjectPanel extends InfoPan
versionLabelField.setText("");
pwcField.setText("");
pathsList.removeAll();
+ mimeTypeField.setText("");
+ sizeField.setText("");
contentUrlField.setText("");
allowableActionsList.removeAll();
aclExactField.setText("");
@@ -169,10 +176,18 @@ public class ObjectPanel extends InfoPan
} else {
pwcField.setText("(not checked out)");
}
+
+ sizeField.setText(doc.getContentStreamLength() >= 0 ? NumberFormat.getInstance().format(
+ doc.getContentStreamLength())
+ + " bytes" : "");
+ mimeTypeField.setText(doc.getContentStreamMimeType() != null ? doc
+ .getContentStreamMimeType() : "");
} else {
latestAccessibleStateIdField.setText("");
pwcField.setText("");
versionLabelField.setText("");
+ mimeTypeField.setText("");
+ sizeField.setText("");
}
if (object instanceof FileableCmisObject) {
@@ -247,7 +262,7 @@ public class ObjectPanel extends InfoPan
}
}
- revalidate();
+ regenerateGUI();
}
});
}
@@ -256,15 +271,21 @@ public class ObjectPanel extends InfoPan
setupGUI();
nameField = addLine("Name:", true);
+ addSeparator();
idField = addId("Object ID:");
latestAccessibleStateIdField = addId("Latest State ID:");
typeField = addLine("Type:");
basetypeField = addBaseTypeLabel("Base Type:");
secondaryTypesList = addComponent("Secondary Types:", new InfoList());
+ addSeparator();
pathsList = addComponent("Paths:", new InfoList());
+ addSeparator();
+ mimeTypeField = addLine("MIME Type:");
+ sizeField = addLine("Size:");
versionLabelField = addLine("Version Label:");
pwcField = addId("PWC:");
contentUrlField = addLink("Content URL:");
+ addSeparator();
allowableActionsList = addComponent("Allowable Actions:", new InfoList());
aclExactField = addLine("ACL:");
@@ -305,14 +326,7 @@ public class ObjectPanel extends InfoPan
refreshButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- try {
- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- getClientModel().reloadObject();
- } catch (Exception ex) {
- ClientHelper.showError(null, ex);
- } finally {
- setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- }
+ LoadObjectWorker.reloadObject(ObjectPanel.this, getClientModel());
}
});
@@ -367,11 +381,18 @@ 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(), (String) null);
- if (console != null) {
- console.loadScriptFile(file);
- }
+ // download and execute Groovy file
+ TempFileContentWorker worker = new TempFileContentWorker(ObjectPanel.this, doc) {
+ @Override
+ protected void processTempFile(File file) {
+ Console console = ClientHelper.openConsole(ObjectPanel.this, getClientModel(),
+ (String) null);
+ if (console != null) {
+ console.loadScriptFile(file);
+ }
+ }
+ };
+ worker.executeTask();
} else {
ClientHelper.open(ObjectPanel.this, doc, null);
}
@@ -386,26 +407,25 @@ public class ObjectPanel extends InfoPan
scriptRunButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- try {
- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- Document doc = (Document) getClientModel().getCurrentObject();
- File file = ClientHelper.createTempFileFromDocument(doc, null);
- String name = doc.getName().toLowerCase(Locale.ENGLISH);
- String ext = name.substring(name.lastIndexOf('.') + 1);
+ final Document doc = (Document) getClientModel().getCurrentObject();
+ TempFileContentWorker worker = new TempFileContentWorker(ObjectPanel.this, doc) {
+ @Override
+ protected void processTempFile(File file) {
+ String name = doc.getName().toLowerCase(Locale.ENGLISH);
+ String ext = name.substring(name.lastIndexOf('.') + 1);
+
+ scriptOutput.setText("");
+ scriptOutput.setVisible(true);
+ scriptOutput.invalidate();
- scriptOutput.setText("");
- scriptOutput.setVisible(true);
- scriptOutput.invalidate();
-
- ClientHelper.runJSR223Script(ObjectPanel.this, getClientModel(), file, ext, scriptOutputWriter);
- } catch (Exception ex) {
- ClientHelper.showError(null, ex);
- } finally {
- setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- }
+ ClientHelper.runJSR223Script(ObjectPanel.this, getClientModel(), file, ext, scriptOutputWriter);
+ }
+ };
+ worker.executeTask();
}
});
+ regenerateGUI();
}
private String getDocumentURL(final CmisObject document, final Session session) {
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/PolicyTable.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/PolicyTable.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/PolicyTable.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/PolicyTable.java Sun Sep 25 10:29:02 2016
@@ -22,8 +22,8 @@ import java.awt.event.MouseEvent;
import org.apache.chemistry.opencmis.client.api.ObjectId;
import org.apache.chemistry.opencmis.client.api.Policy;
-import org.apache.chemistry.opencmis.workbench.ClientHelper;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
+import org.apache.chemistry.opencmis.workbench.worker.LoadObjectWorker;
public class PolicyTable extends AbstractDetailsTable {
@@ -43,13 +43,9 @@ public class PolicyTable extends Abstrac
return;
}
- try {
- getClientModel().loadObject(
- getObject().getPolicies().get(getRowSorter().convertRowIndexToModel(rowIndex)).getId());
- setTab(0);
- } catch (Exception ex) {
- ClientHelper.showError(this, ex);
- }
+ LoadObjectWorker.loadObject(this, getClientModel(),
+ getObject().getPolicies().get(getRowSorter().convertRowIndexToModel(rowIndex)).getId());
+ setTab(0);
}
@Override
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/RelationshipTable.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/RelationshipTable.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/RelationshipTable.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/RelationshipTable.java Sun Sep 25 10:29:02 2016
@@ -22,8 +22,8 @@ import java.awt.event.MouseEvent;
import org.apache.chemistry.opencmis.client.api.ObjectId;
import org.apache.chemistry.opencmis.client.api.Relationship;
-import org.apache.chemistry.opencmis.workbench.ClientHelper;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
+import org.apache.chemistry.opencmis.workbench.worker.LoadObjectWorker;
public class RelationshipTable extends AbstractDetailsTable {
@@ -48,12 +48,8 @@ public class RelationshipTable extends A
return;
}
- try {
- getClientModel().loadObject(id.getId());
- setTab(0);
- } catch (Exception ex) {
- ClientHelper.showError(this, ex);
- }
+ LoadObjectWorker.loadObject(this, getClientModel(), id.getId());
+ setTab(0);
}
@Override
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/VersionTable.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/VersionTable.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/VersionTable.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/VersionTable.java Sun Sep 25 10:29:02 2016
@@ -33,6 +33,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.workbench.ClientHelper;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
import org.apache.chemistry.opencmis.workbench.model.ClientModelEvent;
+import org.apache.chemistry.opencmis.workbench.worker.LoadObjectWorker;
public class VersionTable extends AbstractDetailsTable {
@@ -67,7 +68,7 @@ public class VersionTable extends Abstra
boolean fetchVersions = (getObject().getAllowableActions() == null)
|| (getObject().getAllowableActions().getAllowableActions() == null)
|| doc.hasAllowableAction(Action.CAN_GET_ALL_VERSIONS);
-
+
if (fetchVersions) {
SwingUtilities.invokeLater(new Runnable() {
@Override
@@ -113,12 +114,8 @@ public class VersionTable extends Abstra
lock.readLock().unlock();
}
- try {
- getClientModel().loadObject(versionId);
- setTab(0);
- } catch (Exception ex) {
- ClientHelper.showError(this, ex);
- }
+ LoadObjectWorker.loadObject(this, getClientModel(), versionId);
+ setTab(0);
}
@Override
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java Sun Sep 25 10:29:02 2016
@@ -78,19 +78,19 @@ public class ClientModel {
public ClientModel() {
}
- public void addFolderListener(FolderListener listener) {
+ public synchronized void addFolderListener(FolderListener listener) {
listenerList.add(FolderListener.class, listener);
}
- public void removeFolderListener(FolderListener listener) {
+ public synchronized void removeFolderListener(FolderListener listener) {
listenerList.remove(FolderListener.class, listener);
}
- public void addObjectListener(ObjectListener listener) {
+ public synchronized void addObjectListener(ObjectListener listener) {
listenerList.add(ObjectListener.class, listener);
}
- public void removeObjectListener(ObjectListener listener) {
+ public synchronized void removeObjectListener(ObjectListener listener) {
listenerList.remove(ObjectListener.class, listener);
}
@@ -106,12 +106,12 @@ public class ClientModel {
return clientSession;
}
- public synchronized RepositoryInfo getRepositoryInfo() {
- Session session = clientSession.getSession();
+ public RepositoryInfo getRepositoryInfo() {
+ Session session = getClientSession().getSession();
return session.getRepositoryInfo();
}
- public synchronized String getRepositoryName() {
+ public String getRepositoryName() {
try {
return getRepositoryInfo().getName();
} catch (Exception e) {
@@ -119,7 +119,7 @@ public class ClientModel {
}
}
- public synchronized boolean supportsQuery() {
+ public boolean supportsQuery() {
try {
RepositoryCapabilities cap = getRepositoryInfo().getCapabilities();
if (cap == null) {
@@ -132,7 +132,7 @@ public class ClientModel {
}
}
- public synchronized boolean supportsChangeLog() {
+ public boolean supportsChangeLog() {
try {
RepositoryCapabilities cap = getRepositoryInfo().getCapabilities();
if (cap == null) {
@@ -145,21 +145,19 @@ public class ClientModel {
}
}
- private synchronized void loadBaseTypes() {
- if (baseTypes != null) {
- return;
+ private synchronized List<ObjectType> getBaseTypes() {
+ if (baseTypes == null) {
+ baseTypes = new ArrayList<ObjectType>();
+ for (ObjectType type : clientSession.getSession().getTypeChildren(null, false)) {
+ baseTypes.add(type);
+ }
}
- baseTypes = new ArrayList<ObjectType>();
- for (ObjectType type : clientSession.getSession().getTypeChildren(null, false)) {
- baseTypes.add(type);
- }
+ return baseTypes;
}
- public synchronized boolean supportsItems() {
- loadBaseTypes();
-
- for (ObjectType type : baseTypes) {
+ public boolean supportsItems() {
+ for (ObjectType type : getBaseTypes()) {
if (type.getBaseTypeId() == BaseTypeId.CMIS_ITEM) {
return true;
}
@@ -168,10 +166,8 @@ public class ClientModel {
return false;
}
- public synchronized boolean supportsRelationships() {
- loadBaseTypes();
-
- for (ObjectType type : baseTypes) {
+ public boolean supportsRelationships() {
+ for (ObjectType type : getBaseTypes()) {
if (type.getBaseTypeId() == BaseTypeId.CMIS_RELATIONSHIP) {
return true;
}
@@ -180,10 +176,8 @@ public class ClientModel {
return false;
}
- public synchronized boolean supportsPolicies() {
- loadBaseTypes();
-
- for (ObjectType type : baseTypes) {
+ public boolean supportsPolicies() {
+ for (ObjectType type : getBaseTypes()) {
if (type.getBaseTypeId() == BaseTypeId.CMIS_POLICY) {
return true;
}
@@ -192,9 +186,10 @@ public class ClientModel {
return false;
}
- public synchronized ObjectId loadFolder(String folderId, boolean byPath) {
+ public ObjectId loadFolder(final String folderId, final boolean byPath) {
try {
- Session session = clientSession.getSession();
+ ClientSession myClientSession = getClientSession();
+ Session session = myClientSession.getSession();
CmisObject selectedObject = null;
CmisObject folderObject = null;
@@ -214,23 +209,24 @@ public class ClientModel {
}
if (folderObject == null) {
- // selected object is unfiled, a relationship object, or the
- // user is not allowed to see the parent folder
+ // selected object is unfiled, a relationship object, or
+ // the user is not allowed to see the parent folder
setCurrentFolder(null, Collections.<CmisObject> emptyList());
return selectedObject;
}
List<CmisObject> children = new ArrayList<CmisObject>();
- if (clientSession.getMaxChildren() != 0) {
+ int maxChildren = myClientSession.getMaxChildren();
+ if (maxChildren != 0) {
// if maxChildren == 0 don't call getChildren()
- ItemIterable<CmisObject> iter = ((Folder) folderObject).getChildren(clientSession
+ ItemIterable<CmisObject> iter = ((Folder) folderObject).getChildren(myClientSession
.getFolderOperationContext());
- if (clientSession.getMaxChildren() > 0) {
+ if (myClientSession.getMaxChildren() > 0) {
// if maxChildren > 0 restrict number of children
// otherwise load all
- iter = iter.getPage(clientSession.getMaxChildren());
+ iter = iter.getPage(maxChildren);
}
for (CmisObject child : iter) {
@@ -247,16 +243,10 @@ public class ClientModel {
}
}
- public synchronized void reloadFolder() {
- if (currentFolder != null) {
- loadFolder(currentFolder.getId(), false);
- }
- }
-
- public synchronized void loadObject(String objectId) {
+ public void loadObject(final String objectId) {
try {
- Session session = clientSession.getSession();
- CmisObject object = session.getObject(objectId, clientSession.getObjectOperationContext());
+ Session session = getClientSession().getSession();
+ CmisObject object = session.getObject(objectId, getClientSession().getObjectOperationContext());
object.refreshIfOld(OLD);
setCurrentObject(object);
@@ -267,13 +257,15 @@ public class ClientModel {
}
public synchronized void reloadObject() {
- if (currentObject == null) {
+ CmisObject myCurrentObject = getCurrentObject();
+ if (myCurrentObject == null) {
return;
}
+ ClientSession myClientSession = getClientSession();
try {
- Session session = clientSession.getSession();
- CmisObject object = session.getObject(currentObject, clientSession.getObjectOperationContext());
+ Session session = myClientSession.getSession();
+ CmisObject object = session.getObject(myCurrentObject, myClientSession.getObjectOperationContext());
object.refresh();
setCurrentObject(object);
@@ -283,16 +275,16 @@ public class ClientModel {
}
}
- public synchronized ItemIterable<QueryResult> query(String q, boolean searchAllVersions, int maxHits) {
+ public ItemIterable<QueryResult> query(String q, boolean searchAllVersions, int maxHits) {
OperationContext queryContext = new OperationContextImpl(null, false, false, false, IncludeRelationships.NONE,
null, false, null, false, maxHits > 0 ? maxHits : 1);
- Session session = clientSession.getSession();
+ Session session = getClientSession().getSession();
return session.query(q, searchAllVersions, queryContext);
}
- public synchronized List<Tree<ObjectType>> getTypeDescendants() {
- Session session = clientSession.getSession();
+ public List<Tree<ObjectType>> getTypeDescendants() {
+ Session session = getClientSession().getSession();
return session.getTypeDescendants(null, -1, true);
}
@@ -303,16 +295,15 @@ public class ClientModel {
InputStream stream = new LoggingInputStream(new BufferedInputStream(new FileInputStream(file), 512 * 1024),
file.getName());
- content = clientSession.getSession().getObjectFactory()
+ content = getClientSession().getSession().getObjectFactory()
.createContentStream(file.getName(), file.length(), MimeTypes.getMIMEType(file), stream);
}
return content;
}
- public synchronized ObjectId createDocument(String name, String type, String filename,
- Map<String, Object> additionalProperties, VersioningState versioningState, boolean unfiled)
- throws FileNotFoundException {
+ public ObjectId createDocument(String name, String type, String filename, Map<String, Object> additionalProperties,
+ VersioningState versioningState, boolean unfiled) throws FileNotFoundException {
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.NAME, name);
properties.put(PropertyIds.OBJECT_TYPE_ID, type);
@@ -324,15 +315,15 @@ public class ClientModel {
ContentStream content = createContentStream(filename);
try {
- return clientSession.getSession().createDocument(properties, (unfiled ? null : currentFolder), content,
- versioningState, null, null, null);
+ return getClientSession().getSession().createDocument(properties, (unfiled ? null : getCurrentFolder()),
+ content, versioningState, null, null, null);
} finally {
IOUtils.closeQuietly(content);
}
}
public ContentStream createContentStream(String name, long length, long seed) {
- return clientSession
+ return getClientSession()
.getSession()
.getObjectFactory()
.createContentStream(name, length, "application/octet-stream",
@@ -351,8 +342,8 @@ public class ClientModel {
ContentStream content = createContentStream(name, length, seed);
try {
- return clientSession.getSession().createDocument(properties, (unfiled ? null : currentFolder), content,
- versioningState, null, null, null);
+ return clientSession.getSession().createDocument(properties, (unfiled ? null : getCurrentFolder()),
+ content, versioningState, null, null, null);
} finally {
IOUtils.closeQuietly(content);
}
@@ -368,7 +359,8 @@ public class ClientModel {
properties.putAll(additionalProperties);
}
- return clientSession.getSession().createItem(properties, (unfiled ? null : currentFolder), null, null, null);
+ return getClientSession().getSession().createItem(properties, (unfiled ? null : getCurrentFolder()), null,
+ null, null);
}
public synchronized ObjectId createFolder(String name, String type, Map<String, Object> additionalProperties) {
@@ -380,7 +372,7 @@ public class ClientModel {
properties.putAll(additionalProperties);
}
- return clientSession.getSession().createFolder(properties, currentFolder, null, null, null);
+ return getClientSession().getSession().createFolder(properties, getCurrentFolder(), null, null, null);
}
public synchronized ObjectId createRelationship(String name, String type, String sourceId, String targetId,
@@ -395,7 +387,7 @@ public class ClientModel {
properties.putAll(additionalProperties);
}
- return clientSession.getSession().createRelationship(properties, null, null, null);
+ return getClientSession().getSession().createRelationship(properties, null, null, null);
}
public synchronized ObjectId createPolicy(String name, String type, String policyText,
@@ -411,20 +403,23 @@ public class ClientModel {
properties.putAll(additionalProperties);
}
- return clientSession.getSession().createPolicy(properties, (unfiled ? null : currentFolder), null, null, null);
+ return getClientSession().getSession().createPolicy(properties, (unfiled ? null : getCurrentFolder()), null,
+ null, null);
}
public synchronized List<ObjectType> getTypesAsList(String rootTypeId, boolean creatableOnly) {
+ Session session = getClientSession().getSession();
+
List<ObjectType> result = new ArrayList<ObjectType>();
ObjectType rootType = null;
try {
- rootType = clientSession.getSession().getTypeDefinition(rootTypeId);
+ rootType = session.getTypeDefinition(rootTypeId);
} catch (CmisBaseException e) {
return result;
}
- List<Tree<ObjectType>> types = clientSession.getSession().getTypeDescendants(rootTypeId, -1, true);
+ List<Tree<ObjectType>> types = session.getTypeDescendants(rootTypeId, -1, true);
addType(types, result, creatableOnly);
if (creatableOnly) {
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientSession.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientSession.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientSession.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientSession.java Sun Sep 25 10:29:02 2016
@@ -244,7 +244,7 @@ public class ClientSession {
authenticationProvider, cache, typeDefCache);
}
- public List<Repository> getRepositories() {
+ public synchronized List<Repository> getRepositories() {
return repositories;
}
@@ -256,7 +256,7 @@ public class ClientSession {
return getSession();
}
- public Session getSession() {
+ public synchronized Session getSession() {
return session;
}
@@ -264,11 +264,11 @@ public class ClientSession {
return Collections.unmodifiableMap(sessionParameters);
}
- public void setStartFolderId(String startFolderId) {
+ public synchronized void setStartFolderId(String startFolderId) {
this.startFolderId = startFolderId;
}
- public String getStartFolderId() {
+ public synchronized String getStartFolderId() {
if (startFolderId != null) {
return startFolderId;
} else {
@@ -276,7 +276,7 @@ public class ClientSession {
}
}
- public int getMaxChildren() {
+ public synchronized int getMaxChildren() {
return maxChildren;
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/ActionPanel.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/ActionPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/ActionPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/ActionPanel.java Sun Sep 25 10:29:02 2016
@@ -20,7 +20,6 @@ package org.apache.chemistry.opencmis.wo
import java.awt.BorderLayout;
import java.awt.Color;
-import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
@@ -30,7 +29,6 @@ import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
-import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
@@ -41,6 +39,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.workbench.ClientHelper;
import org.apache.chemistry.opencmis.workbench.WorkbenchScale;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
+import org.apache.chemistry.opencmis.workbench.worker.LoadObjectWorker;
public abstract class ActionPanel extends JPanel implements ActionListener {
@@ -118,16 +117,31 @@ public abstract class ActionPanel extend
@Override
public void actionPerformed(ActionEvent e) {
try {
- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
((JButton) e.getSource()).requestFocusInWindow();
- if (doAction()) {
- model.reloadObject();
- }
- model.reloadFolder();
+ doAction();
} catch (Exception ex) {
ClientHelper.showError(null, ex);
- } finally {
- setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+ }
+
+ protected void reload(final boolean reloadObject) {
+ final ClientModel model = getClientModel();
+
+ if (model.getCurrentFolder() != null) {
+ LoadObjectWorker worker = new LoadObjectWorker(ActionPanel.this, model, model.getCurrentFolder().getId()) {
+ @Override
+ protected void done() {
+ super.done();
+ if (reloadObject) {
+ LoadObjectWorker.reloadObject(ActionPanel.this, model);
+ }
+ }
+ };
+ worker.executeTask();
+ } else {
+ if (reloadObject) {
+ LoadObjectWorker.reloadObject(ActionPanel.this, model);
+ }
}
}
@@ -135,10 +149,7 @@ public abstract class ActionPanel extend
public abstract boolean isAllowed();
- /**
- * @return <code>true</code> if object should be reloaded.
- */
- public abstract boolean doAction() throws Exception;
+ public abstract void doAction() throws Exception;
protected JPanel createFilenamePanel(final JTextField filenameField) {
JPanel filePanel = new JPanel(new BorderLayout());
@@ -152,9 +163,9 @@ public abstract class ActionPanel extend
browseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
- JFileChooser fileChooser = new JFileChooser();
+ WorkbenchFileChooser fileChooser = new WorkbenchFileChooser();
int chooseResult = fileChooser.showDialog(filenameField, "Select");
- if (chooseResult == JFileChooser.APPROVE_OPTION) {
+ if (chooseResult == WorkbenchFileChooser.APPROVE_OPTION) {
if (fileChooser.getSelectedFile().isFile()) {
filenameField.setText(fileChooser.getSelectedFile().getAbsolutePath());
}
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=1762181&r1=1762180&r2=1762181&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 Sun Sep 25 10:29:02 2016
@@ -21,15 +21,12 @@ package org.apache.chemistry.opencmis.wo
import static org.apache.chemistry.opencmis.commons.impl.CollectionsHelper.isNullOrEmpty;
import java.awt.Color;
+import java.awt.Component;
+import java.awt.Container;
import java.awt.Cursor;
import java.awt.Desktop;
-import java.awt.FlowLayout;
+import java.awt.Dimension;
import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.Graphics;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
@@ -39,6 +36,7 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
+import java.awt.font.TextAttribute;
import java.net.URI;
import java.util.Collection;
import java.util.EnumMap;
@@ -53,7 +51,10 @@ import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
+import javax.swing.JSeparator;
import javax.swing.JTextField;
+import javax.swing.Spring;
+import javax.swing.SpringLayout;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
@@ -61,6 +62,7 @@ import javax.swing.UIManager;
import org.apache.chemistry.opencmis.workbench.ClientHelper;
import org.apache.chemistry.opencmis.workbench.WorkbenchScale;
import org.apache.chemistry.opencmis.workbench.model.ClientModel;
+import org.apache.chemistry.opencmis.workbench.worker.LoadObjectWorker;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
@@ -75,8 +77,7 @@ public abstract class InfoPanel extends
private final ClientModel model;
- private JPanel gridPanel;
- private GridBagConstraints gbc;
+ private int rows;
private Font boldFont;
public InfoPanel(ClientModel model) {
@@ -88,23 +89,30 @@ public abstract class InfoPanel extends
}
protected void setupGUI() {
- setLayout(new FlowLayout(FlowLayout.LEFT));
+ setLayout(new SpringLayout());
setBackground(Color.WHITE);
- gridPanel = new JPanel(new GridBagLayout());
- gridPanel.setBackground(Color.WHITE);
- add(gridPanel);
-
- gbc = new GridBagConstraints();
-
- gbc.fill = GridBagConstraints.BOTH;
- gbc.gridy = 0;
- gbc.insets = WorkbenchScale.scaleInsets(new Insets(3, 3, 3, 3));
+ rows = 0;
Font labelFont = UIManager.getFont("Label.font");
boldFont = labelFont.deriveFont(Font.BOLD, labelFont.getSize2D() * 1.2f);
}
+ protected void regenerateGUI() {
+ SpringLayout layout = (SpringLayout) getLayout();
+
+ for (int c = 0; c < 2; c++) {
+ for (int r = 0; r < rows; r++) {
+ Component comp = getComponent(r * 2 + c);
+ layout.removeLayoutComponent(comp);
+ }
+ }
+
+ makeCompactGrid(this, rows, 2, WorkbenchScale.scaleInt(5), WorkbenchScale.scaleInt(10),
+ WorkbenchScale.scaleInt(10), WorkbenchScale.scaleInt(5), WorkbenchScale.scaleInt(18));
+ revalidate();
+ }
+
protected JTextField addLine(final String label) {
return addLine(label, false);
}
@@ -115,26 +123,21 @@ public abstract class InfoPanel extends
protected JTextField addLine(final String label, final boolean bold, JTextField textField) {
textField.setEditable(false);
- textField.setBorder(WorkbenchScale.scaleBorder(BorderFactory.createEmptyBorder()));
+ textField.setBorder(BorderFactory.createEmptyBorder());
if (bold) {
textField.setFont(boldFont);
}
- JLabel textLable = new JLabel(label);
- textLable.setLabelFor(textField);
+ JLabel textLabel = new JLabel(label);
+ textLabel.setLabelFor(textField);
if (bold) {
- textLable.setFont(boldFont);
+ textLabel.setFont(boldFont);
}
- gbc.gridy++;
-
- gbc.gridx = 0;
- gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
- gridPanel.add(textLable, gbc);
+ rows++;
- gbc.gridx = 1;
- gbc.anchor = GridBagConstraints.BASELINE_LEADING;
- gridPanel.add(textField, gbc);
+ add(textLabel);
+ add(textField);
return textField;
}
@@ -153,15 +156,10 @@ public abstract class InfoPanel extends
JLabel textLable = new JLabel(label);
textLable.setLabelFor(ynl);
- gbc.gridy++;
+ rows++;
- gbc.gridx = 0;
- gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
- gridPanel.add(textLable, gbc);
-
- gbc.gridx = 1;
- gbc.anchor = GridBagConstraints.BASELINE_LEADING;
- gridPanel.add(ynl, gbc);
+ add(textLable);
+ add(ynl);
return ynl;
}
@@ -172,42 +170,104 @@ public abstract class InfoPanel extends
JLabel textLable = new JLabel(label);
textLable.setLabelFor(btl);
- gbc.gridy++;
+ rows++;
- gbc.gridx = 0;
- gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
- gridPanel.add(textLable, gbc);
-
- gbc.gridx = 1;
- gbc.anchor = GridBagConstraints.BASELINE_LEADING;
- gridPanel.add(btl, gbc);
+ add(textLable);
+ add(btl);
return btl;
}
+ protected JSeparator addSeparator() {
+ JPanel panel = new JPanel();
+ panel.setOpaque(false);
+ panel.setMaximumSize(new Dimension(1, 1));
+
+ JSeparator separator = new JSeparator();
+
+ rows++;
+
+ add(panel);
+ add(separator);
+
+ return separator;
+ }
+
protected <T extends JComponent> T addComponent(String label, T comp) {
JLabel textLable = new JLabel(label);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.LINE_AXIS));
- panel.setBorder(WorkbenchScale.scaleBorder(BorderFactory.createEmptyBorder()));
+ panel.setBorder(BorderFactory.createEmptyBorder());
panel.setOpaque(false);
panel.add(comp);
textLable.setLabelFor(panel);
- gbc.gridy++;
+ rows++;
- gbc.gridx = 0;
- gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
- gridPanel.add(textLable, gbc);
-
- gbc.gridx = 1;
- gbc.anchor = GridBagConstraints.BASELINE_LEADING;
- gridPanel.add(panel, gbc);
+ add(textLable);
+ add(panel);
return comp;
}
+ private SpringLayout.Constraints getConstraintsForCell(int row, int col, Container parent, int cols) {
+ SpringLayout layout = (SpringLayout) parent.getLayout();
+ Component c = parent.getComponent(row * cols + col);
+ return layout.getConstraints(c);
+ }
+
+ protected void makeCompactGrid(Container parent, int rows, int cols, int initialX, int initialY, int xPad,
+ int yPad, int minHeight) {
+ SpringLayout layout = (SpringLayout) parent.getLayout();
+
+ Spring x = Spring.constant(initialX);
+ for (int c = 0; c < cols; c++) {
+ Spring width = Spring.constant(0);
+ for (int r = 0; r < rows; r++) {
+ width = Spring.max(width, getConstraintsForCell(r, c, parent, cols).getWidth());
+ }
+ for (int r = 0; r < rows; r++) {
+ SpringLayout.Constraints constraints = getConstraintsForCell(r, c, parent, cols);
+ constraints.setX(x);
+ constraints.setWidth(width);
+ }
+ x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad)));
+ }
+
+ Spring y = Spring.constant(initialY);
+ for (int r = 0; r < rows; r++) {
+ Spring height = Spring.constant(minHeight);
+ for (int c = 0; c < cols; c++) {
+ height = Spring.max(height, getConstraintsForCell(r, c, parent, cols).getHeight());
+ }
+
+ SpringLayout.Constraints labelConstraints = getConstraintsForCell(r, 0, parent, cols);
+ SpringLayout.Constraints valueConstraints = getConstraintsForCell(r, 1, parent, cols);
+
+ labelConstraints.setY(y);
+ valueConstraints.setY(y);
+ valueConstraints.setHeight(height);
+
+ 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)));
+ }
+
+ y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad)));
+ }
+
+ layout.getConstraints(parent).setConstraint(SpringLayout.EAST, x);
+ layout.getConstraints(parent).setConstraint(SpringLayout.NORTH, y);
+ parent.setPreferredSize(new Dimension(x.getPreferredValue(), y.getPreferredValue()));
+ }
+
public static class InfoList extends JPanel {
private static final long serialVersionUID = 1L;
@@ -306,11 +366,13 @@ public abstract class InfoPanel extends
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
popup.setEnabled(false);
link = null;
+ setUnderline(false);
} else {
setForeground(getLinkColor(text));
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
popup.setEnabled(true);
link = text;
+ setUnderline(true);
}
updated = true;
@@ -318,6 +380,24 @@ public abstract class InfoPanel extends
super.setText(text);
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ private void setUnderline(boolean underline) {
+ Font font = getFont();
+ Map attributes = font.getAttributes();
+
+ Object isUnderlined = attributes.get(TextAttribute.UNDERLINE);
+
+ if (TextAttribute.UNDERLINE_ON.equals(isUnderlined) && !underline) {
+ attributes.put(TextAttribute.UNDERLINE, -1);
+ setFont(font.deriveFont(attributes));
+ }
+
+ if ((isUnderlined == null || Integer.valueOf(-1).equals(isUnderlined)) && underline) {
+ attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
+ setFont(font.deriveFont(attributes));
+ }
+ }
+
@Override
public void validate() {
}
@@ -337,20 +417,6 @@ public abstract class InfoPanel extends
@Override
public void repaint(Rectangle r) {
}
-
- @Override
- public void paintComponent(Graphics g) {
- super.paintComponent(g);
-
- if (link != null) {
- FontMetrics fm = getFontMetrics(getFont());
-
- int y1 = fm.getHeight() - 2;
- int x2 = fm.stringWidth(link);
- g.setColor(getLinkColor(link));
- g.drawLine(0, y1, x2, y1);
- }
- }
}
private class IdTextField extends ClickableTextField {
@@ -372,11 +438,7 @@ public abstract class InfoPanel extends
@Override
public void linkAction(String link) {
- try {
- getClientModel().loadObject(link);
- } catch (Exception ex) {
- ClientHelper.showError(InfoPanel.this, ex);
- }
+ LoadObjectWorker.loadObject(InfoPanel.this, model, link);
}
}
Added: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/WorkbenchFileChooser.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/WorkbenchFileChooser.java?rev=1762181&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/WorkbenchFileChooser.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/WorkbenchFileChooser.java Sun Sep 25 10:29:02 2016
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.opencmis.workbench.swing;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.HeadlessException;
+import java.awt.Toolkit;
+import java.io.File;
+import java.util.prefs.Preferences;
+
+import javax.swing.JFileChooser;
+
+public class WorkbenchFileChooser extends JFileChooser {
+
+ private static final long serialVersionUID = 1L;
+
+ private static final String PREFS_DIRECTORY = "directory";
+
+ private final Preferences prefs = Preferences.userNodeForPackage(this.getClass());
+
+ public WorkbenchFileChooser() {
+ super();
+ load();
+
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ setPreferredSize(new Dimension((int) (screenSize.getWidth() / 2), (int) (screenSize.getHeight() / 2)));
+ }
+
+ @Override
+ public int showDialog(Component parent, String approveButtonText) throws HeadlessException {
+ int state = super.showDialog(parent, approveButtonText);
+
+ if (state == JFileChooser.APPROVE_OPTION) {
+ save();
+ }
+
+ return state;
+ }
+
+ private synchronized void load() {
+ String fileChooserDirectory = prefs.get(PREFS_DIRECTORY, null);
+ if (fileChooserDirectory != null) {
+ setCurrentDirectory(new File(fileChooserDirectory));
+ }
+ }
+
+ private synchronized void save() {
+ File selectedFile = getSelectedFile();
+ if (selectedFile != null) {
+ prefs.put(PREFS_DIRECTORY, selectedFile.getParent());
+ }
+ }
+}
Propchange: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/WorkbenchFileChooser.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/types/PropertyDefinitionsSplitPane.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/types/PropertyDefinitionsSplitPane.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/types/PropertyDefinitionsSplitPane.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/types/PropertyDefinitionsSplitPane.java Sun Sep 25 10:29:02 2016
@@ -422,7 +422,7 @@ public class PropertyDefinitionsSplitPan
extensionsTree.setData(null);
}
- revalidate();
+ regenerateGUI();
}
private boolean is(Boolean b) {
@@ -460,6 +460,8 @@ public class PropertyDefinitionsSplitPan
dateTimeResolutionField = addLine("DateTime Resolution:");
extensionsTree = addComponent("Extensions:", new InfoTreePane<List<CmisExtensionElement>>(
new ExtensionsTree()));
+
+ regenerateGUI();
}
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/types/TypeDefinitionInfoPanel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/types/TypeDefinitionInfoPanel.java?rev=1762181&r1=1762180&r2=1762181&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/types/TypeDefinitionInfoPanel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/types/TypeDefinitionInfoPanel.java Sun Sep 25 10:29:02 2016
@@ -155,7 +155,7 @@ public class TypeDefinitionInfoPanel ext
extensionsTree.setData(null);
}
- revalidate();
+ regenerateGUI();
}
private void createGUI() {
@@ -181,6 +181,8 @@ public class TypeDefinitionInfoPanel ext
allowedSourceTypesField = addLine("Allowed Source Types:");
allowedTargetTypesField = addLine("Allowed Target Types:");
extensionsTree = addComponent("Extensions:", new InfoTreePane<List<CmisExtensionElement>>(new ExtensionsTree()));
+
+ regenerateGUI();
}
private boolean is(Boolean b) {