Author: fmui
Date: Wed Dec 19 19:58:55 2012
New Revision: 1424061
URL: http://svn.apache.org/viewvc?rev=1424061&view=rev
Log:
Workbench: added create Item dialog
Added:
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateItemDialog.java
(with props)
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientFrame.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientFrame.java
URL:
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientFrame.java?rev=1424061&r1=1424060&r2=1424061&view=diff
==============================================================================
---
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientFrame.java
(original)
+++
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ClientFrame.java
Wed Dec 19 19:58:55 2012
@@ -61,11 +61,9 @@ public class ClientFrame extends JFrame
private static final int BUTTON_CHANGELOG = 4;
private static final int BUTTON_CONSOLE = 5;
private static final int BUTTON_TCK = 6;
- private static final int BUTTON_CREATE_DOCUMENT = 7;
- private static final int BUTTON_CREATE_FOLDER = 8;
- private static final int BUTTON_CREATE_RELATIONSHIP = 9;
- private static final int BUTTON_LOG = 10;
- private static final int BUTTON_INFO = 11;
+ private static final int BUTTON_CREATE = 7;
+ private static final int BUTTON_LOG = 8;
+ private static final int BUTTON_INFO = 9;
private static final String PREFS_X = "x";
private static final String PREFS_Y = "y";
@@ -85,6 +83,11 @@ public class ClientFrame extends JFrame
private JToolBar toolBar;
private JButton[] toolbarButton;
private JPopupMenu toolbarConsolePopup;
+ private JPopupMenu toolbarCreatePopup;
+ private JMenuItem documentMenuItem;
+ private JMenuItem itemMenuItem;
+ private JMenuItem folderMenuItem;
+ private JMenuItem relationshipMenuItem;
private JSplitPane split;
private FolderPanel folderPanel;
@@ -147,7 +150,7 @@ public class ClientFrame extends JFrame
toolBar = new JToolBar("CMIS Toolbar", JToolBar.HORIZONTAL);
- toolbarButton = new JButton[12];
+ toolbarButton = new JButton[10];
toolbarButton[BUTTON_CONNECT] = new JButton("Connection",
ClientHelper.getIcon("connect.png"));
toolbarButton[BUTTON_CONNECT].addActionListener(new ActionListener() {
@@ -236,36 +239,56 @@ public class ClientFrame extends JFrame
toolBar.addSeparator();
- toolbarButton[BUTTON_CREATE_DOCUMENT] = new JButton("Create Document",
ClientHelper.getIcon("newdocument.png"));
- toolbarButton[BUTTON_CREATE_DOCUMENT].setEnabled(false);
- toolbarButton[BUTTON_CREATE_DOCUMENT].addActionListener(new
ActionListener() {
- public void actionPerformed(ActionEvent e) {
+ toolbarCreatePopup = new JPopupMenu();
+ documentMenuItem = new JMenuItem("Document");
+ documentMenuItem.setEnabled(true);
+ toolbarCreatePopup.add(documentMenuItem);
+ documentMenuItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent event) {
new CreateDocumentDialog(thisFrame, model);
}
});
- toolBar.add(toolbarButton[BUTTON_CREATE_DOCUMENT]);
+ itemMenuItem = new JMenuItem("Item");
+ itemMenuItem.setEnabled(false);
+ toolbarCreatePopup.add(itemMenuItem);
+ itemMenuItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent event) {
+ new CreateItemDialog(thisFrame, model);
+ }
+ });
- toolbarButton[BUTTON_CREATE_FOLDER] = new JButton("Create Folder",
ClientHelper.getIcon("newfolder.png"));
- toolbarButton[BUTTON_CREATE_FOLDER].setEnabled(false);
- toolbarButton[BUTTON_CREATE_FOLDER].addActionListener(new
ActionListener() {
- public void actionPerformed(ActionEvent e) {
+ folderMenuItem = new JMenuItem("Folder");
+ folderMenuItem.setEnabled(true);
+ toolbarCreatePopup.add(folderMenuItem);
+ folderMenuItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent event) {
new CreateFolderDialog(thisFrame, model);
}
});
- toolBar.add(toolbarButton[BUTTON_CREATE_FOLDER]);
+ relationshipMenuItem = new JMenuItem("Relationship");
+ relationshipMenuItem.setEnabled(false);
+ toolbarCreatePopup.add(relationshipMenuItem);
+ relationshipMenuItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent event) {
+ new CreateRelationshipDialog(thisFrame, model);
+ }
+ });
- toolbarButton[BUTTON_CREATE_RELATIONSHIP] = new JButton("Create
Relationship",
- ClientHelper.getIcon("newrelationship.png"));
- toolbarButton[BUTTON_CREATE_RELATIONSHIP].setEnabled(false);
- toolbarButton[BUTTON_CREATE_RELATIONSHIP].addActionListener(new
ActionListener() {
+ toolbarButton[BUTTON_CREATE] = new JButton("Create Object",
ClientHelper.getIcon("newdocument.png"));
+ toolbarButton[BUTTON_CREATE].setEnabled(false);
+ toolbarButton[BUTTON_CREATE].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
- new CreateRelationshipDialog(thisFrame, model);
+ toolbarCreatePopup.show(toolbarButton[BUTTON_CREATE], 0,
toolbarButton[BUTTON_CREATE].getHeight());
}
});
- toolBar.add(toolbarButton[BUTTON_CREATE_RELATIONSHIP]);
+ toolBar.add(toolbarButton[BUTTON_CREATE]);
toolBar.addSeparator();
@@ -334,9 +357,10 @@ public class ClientFrame extends JFrame
toolbarButton[BUTTON_CHANGELOG].setEnabled(model.supportsChangeLog());
toolbarButton[BUTTON_CONSOLE].setEnabled(true);
toolbarButton[BUTTON_TCK].setEnabled(true);
- toolbarButton[BUTTON_CREATE_DOCUMENT].setEnabled(true);
- toolbarButton[BUTTON_CREATE_FOLDER].setEnabled(true);
-
toolbarButton[BUTTON_CREATE_RELATIONSHIP].setEnabled(model.supportsRelationships());
+ toolbarButton[BUTTON_CREATE].setEnabled(true);
+
+ itemMenuItem.setEnabled(model.supportsItems());
+ relationshipMenuItem.setEnabled(model.supportsRelationships());
Object user =
clientSession.getSessionParameters().get(SessionParameter.USER);
if (user != null) {
@@ -353,9 +377,7 @@ public class ClientFrame extends JFrame
toolbarButton[BUTTON_CHANGELOG].setEnabled(false);
toolbarButton[BUTTON_CONSOLE].setEnabled(false);
toolbarButton[BUTTON_TCK].setEnabled(false);
- toolbarButton[BUTTON_CREATE_DOCUMENT].setEnabled(false);
- toolbarButton[BUTTON_CREATE_FOLDER].setEnabled(false);
- toolbarButton[BUTTON_CREATE_RELATIONSHIP].setEnabled(false);
+ toolbarButton[BUTTON_CREATE].setEnabled(false);
ClientHelper.showError(null, ex);
Added:
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateItemDialog.java
URL:
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateItemDialog.java?rev=1424061&view=auto
==============================================================================
---
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateItemDialog.java
(added)
+++
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateItemDialog.java
Wed Dec 19 19:58:55 2012
@@ -0,0 +1,101 @@
+/*
+ * 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;
+
+import java.awt.Cursor;
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JOptionPane;
+import javax.swing.JTextField;
+
+import org.apache.chemistry.opencmis.client.api.ObjectId;
+import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
+import org.apache.chemistry.opencmis.workbench.model.ClientModel;
+import org.apache.chemistry.opencmis.workbench.swing.CreateDialog;
+
+public class CreateItemDialog extends CreateDialog {
+
+ private static final long serialVersionUID = 1L;
+
+ private JTextField nameField;
+ private JComboBox typeBox;
+
+ public CreateItemDialog(Frame owner, ClientModel model) {
+ super(owner, "Create Item", model);
+ createGUI();
+ }
+
+ private void createGUI() {
+ final CreateItemDialog thisDialog = this;
+
+ nameField = new JTextField(60);
+ createRow("Name:", nameField, 0);
+
+ Object[] types = getTypes(BaseTypeId.CMIS_ITEM.value());
+ if (types.length == 0) {
+ JOptionPane.showMessageDialog(this, "No creatable type!",
"Creatable Types", JOptionPane.ERROR_MESSAGE);
+ thisDialog.dispose();
+ return;
+ }
+
+ typeBox = new JComboBox(types);
+ typeBox.setSelectedIndex(0);
+ createRow("Type:", typeBox, 1);
+
+ JButton createButton = new JButton("Create Item",
ClientHelper.getIcon("newfolder.png"));
+ createButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent event) {
+ String name = nameField.getText();
+ String type = ((ObjectTypeItem)
typeBox.getSelectedItem()).getObjectType().getId();
+
+ try {
+ setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+
+ ObjectId objectId = getClientModel().createItem(name,
type);
+
+ if (objectId != null) {
+ getClientModel().loadObject(objectId.getId());
+ }
+
+ thisDialog.setVisible(false);
+ thisDialog.dispose();
+ } catch (Exception e) {
+ ClientHelper.showError(null, e);
+ } finally {
+
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+
+ try {
+ getClientModel().reloadFolder();
+ } catch (Exception e) {
+ ClientHelper.showError(null, e);
+ }
+ }
+ }
+ });
+ createRow("", createButton, 3);
+
+ getRootPane().setDefaultButton(createButton);
+
+ showDialog();
+ }
+}
Propchange:
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateItemDialog.java
------------------------------------------------------------------------------
svn:eol-style = native
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=1424061&r1=1424060&r2=1424061&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
Wed Dec 19 19:58:55 2012
@@ -134,6 +134,16 @@ public class ClientModel {
}
}
+ public synchronized boolean supportsItems() {
+ for (ObjectType type :
clientSession.getSession().getTypeChildren(null, false)) {
+ if (type.getBaseTypeId() == BaseTypeId.CMIS_ITEM) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
public synchronized boolean supportsRelationships() {
for (ObjectType type :
clientSession.getSession().getTypeChildren(null, false)) {
if (type.getBaseTypeId() == BaseTypeId.CMIS_RELATIONSHIP) {
@@ -292,6 +302,14 @@ public class ClientModel {
}
}
+ public synchronized ObjectId createItem(String name, String type) throws
Exception {
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put(PropertyIds.NAME, name);
+ properties.put(PropertyIds.OBJECT_TYPE_ID, type);
+
+ return clientSession.getSession().createItem(properties,
currentFolder, null, null, null);
+ }
+
public synchronized ObjectId createFolder(String name, String type) throws
Exception {
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.NAME, name);