CMIS-1048: Workbench: fixed delete on a folder
git-svn-id: https://svn.apache.org/repos/asf/chemistry/opencmis/trunk@1815011 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/FolderTable.java b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/FolderTable.java
index 45db5bb..226a600 100644
--- a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/FolderTable.java
+++ b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/FolderTable.java
@@ -56,6 +56,7 @@
import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.commons.enums.Action;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
+import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
import org.apache.chemistry.opencmis.workbench.icons.CheckedOutIcon;
import org.apache.chemistry.opencmis.workbench.icons.DocumentIcon;
import org.apache.chemistry.opencmis.workbench.icons.FolderIcon;
@@ -153,13 +154,25 @@
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
if (answer == JOptionPane.YES_OPTION) {
- DeleteWorker worker = new DeleteWorker(FolderTable.this, model.getCurrentObject()) {
- @Override
- protected void done() {
- super.done();
- LoadFolderWorker.reloadFolder(FolderTable.this, model);
- }
- };
+ DeleteWorker worker = null;
+ if (model.getCurrentObject() instanceof Folder) {
+ worker = new DeleteWorker(FolderTable.this, (Folder) model.getCurrentObject(), true,
+ UnfileObject.DELETE, true) {
+ @Override
+ protected void done() {
+ super.done();
+ LoadFolderWorker.reloadFolder(FolderTable.this, model);
+ }
+ };
+ } else {
+ worker = new DeleteWorker(FolderTable.this, model.getCurrentObject()) {
+ @Override
+ protected void done() {
+ super.done();
+ LoadFolderWorker.reloadFolder(FolderTable.this, model);
+ }
+ };
+ }
worker.executeTask();
}
}
diff --git a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java
index 6dd2c06..f8cf72d 100644
--- a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java
+++ b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java
@@ -254,19 +254,17 @@
mainPanel.add(configPanel, BorderLayout.LINE_END);
add(mainPanel, BorderLayout.CENTER);
- final JButton runButton = new JButton("Run TCK", new TckIcon(ClientHelper.BUTTON_ICON_SIZE,
- ClientHelper.BUTTON_ICON_SIZE));
+ final JButton runButton = new JButton("Run TCK",
+ new TckIcon(ClientHelper.BUTTON_ICON_SIZE, ClientHelper.BUTTON_ICON_SIZE));
runButton.setDefaultCapable(true);
runButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
- int answer = JOptionPane
- .showConfirmDialog(
- TckSelectDialog.this,
- "Running the TCK may take a long time and may add, remove and alter data in the repository!\n"
- + "It also puts at a strain on the repository, performing several thousand calls!\n"
- + "\nAre you sure you want to proceed?", "TCK", JOptionPane.YES_NO_OPTION,
- JOptionPane.WARNING_MESSAGE);
+ int answer = JOptionPane.showConfirmDialog(TckSelectDialog.this,
+ "Running the TCK may take a long time and may add, remove and alter data in the repository!\n"
+ + "It also puts at a strain on the repository, performing several thousand calls!\n"
+ + "\nAre you sure you want to proceed?",
+ "TCK", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
if (answer == JOptionPane.YES_OPTION) {
Map<String, String> parameters = runner.getParameters();
@@ -614,10 +612,10 @@
private static class TckDialogRunner extends AbstractRunner {
public TckDialogRunner(ClientModel model, TckDialog tckDialog) {
- Map<String, String> parameters = new HashMap<String, String>(model.getClientSession()
- .getSessionParameters());
- parameters.put(SessionParameter.REPOSITORY_ID, model.getClientSession().getSession().getRepositoryInfo()
- .getId());
+ Map<String, String> parameters = new HashMap<String, String>(
+ model.getClientSession().getSessionParameters());
+ parameters.put(SessionParameter.REPOSITORY_ID,
+ model.getClientSession().getSession().getRepositoryInfo().getId());
setParameters(parameters);
}
@@ -728,8 +726,8 @@
} catch (InterruptedException ie) {
runner.cancel();
} catch (Exception e) {
- JOptionPane
- .showMessageDialog(owner, "Error: " + e.getMessage(), "TCK Error", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(owner, "Error: " + e.getMessage(), "TCK Error",
+ JOptionPane.ERROR_MESSAGE);
}
return null;
diff --git a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/worker/DeleteWorker.java b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/worker/DeleteWorker.java
index 0027af5..fc219d7 100644
--- a/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/worker/DeleteWorker.java
+++ b/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/worker/DeleteWorker.java
@@ -34,6 +34,7 @@
private boolean allversions;
private UnfileObject unfile;
private boolean continueOnFailure;
+ private boolean deleteTree;
// out
private List<String> failedIds;
@@ -49,6 +50,7 @@
this.allversions = allversions;
this.unfile = UnfileObject.DELETE;
this.continueOnFailure = true;
+ this.deleteTree = false;
}
public DeleteWorker(Component comp, Folder folder, boolean allversions, UnfileObject unfile,
@@ -59,6 +61,7 @@
this.allversions = allversions;
this.unfile = unfile;
this.continueOnFailure = continueOnFailure;
+ this.deleteTree = true;
}
@Override
@@ -73,7 +76,7 @@
@Override
protected Object doInBackground() throws Exception {
- if (cmisObject instanceof Folder) {
+ if (cmisObject instanceof Folder && deleteTree) {
failedIds = ((Folder) cmisObject).deleteTree(allversions, unfile, continueOnFailure);
} else {
cmisObject.delete(allversions);