summaryrefslogtreecommitdiffstats
path: root/idrop-swing
diff options
context:
space:
mode:
authormconway <michael.c.conway@gmail.com>2013-01-17 13:35:03 (GMT)
committer mconway <michael.c.conway@gmail.com>2013-01-17 13:35:03 (GMT)
commit942183623c9d8d45e0a321fb2d4aa85f015c623f (patch)
tree9018efc4e3ee095cb3c74d54912e85de5e4a7f3e /idrop-swing
parent1f738164f70a6dab863396d9f6a4e54151819470 (diff)
parent545f53b39710b2ed243f9aa83a9452f501890c8e (diff)
downloadQCG-Data-942183623c9d8d45e0a321fb2d4aa85f015c623f.zip
QCG-Data-942183623c9d8d45e0a321fb2d4aa85f015c623f.tar.gz
QCG-Data-942183623c9d8d45e0a321fb2d4aa85f015c623f.tar.bz2
[#983] interim merge of idrop2 swing code
Diffstat (limited to 'idrop-swing')
-rw-r--r--idrop-swing/pom.xml3
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/AddPermissionsDialog.form194
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/AddPermissionsDialog.java227
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/CopyMoveDialog.form287
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/CopyMoveDialog.java514
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.form6
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.java17
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DownloadDialog.form383
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DownloadDialog.java536
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.java5
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.form1457
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.java1824
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/SearchResultsDialog.form142
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/SearchResultsDialog.java222
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/UploadDialog.form363
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/UploadDialog.java577
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.form2303
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.java4194
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/services/IdropConfigurationService.java2
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/utils/Version.java4
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/viscomponents/BreadCrumbNavigationPopup.java159
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/viscomponents/IRODSNode.java19
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/viscomponents/IRODSTree.java24
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/viscomponents/IrodsSelectionListenerForBuildingInfoPanel.java1
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/viscomponents/LocalFileTree.java8
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/viscomponents/MetadataTableModel.java83
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/viscomponents/PermissionsTableModel.java177
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/finder/IRODSFinderDialog.form2
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/finder/IRODSFinderDialog.java48
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/finder/IRODSFinderTree.java15
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/finder/IRODSFinderTreeSelectionListener.java51
-rw-r--r--idrop-swing/src/main/resources/icon_delete.pngbin0 -> 3495 bytes
-rw-r--r--idrop-swing/src/main/resources/icon_download.pngbin0 -> 3387 bytes
-rw-r--r--idrop-swing/src/main/resources/icon_editmetadata.pngbin0 -> 3352 bytes
-rw-r--r--idrop-swing/src/main/resources/icon_refresh.pngbin0 -> 3535 bytes
-rw-r--r--idrop-swing/src/main/resources/icon_replicate.pngbin0 -> 3326 bytes
-rw-r--r--idrop-swing/src/main/resources/icon_settings.pngbin0 -> 3628 bytes
-rw-r--r--idrop-swing/src/main/resources/icon_synch.pngbin0 -> 3701 bytes
-rw-r--r--idrop-swing/src/main/resources/icon_upload.pngbin0 -> 3396 bytes
-rw-r--r--idrop-swing/src/main/resources/idrop.properties3
-rw-r--r--idrop-swing/src/main/resources/org/irods/jargon/idrop/desktop/systraygui/Bundle.properties181
-rw-r--r--idrop-swing/src/main/resources/org/irods/jargon/idrop/desktop/systraygui/viscomponents/Bundle.properties6
-rw-r--r--idrop-swing/src/main/resources/search_files.pngbin0 -> 341 bytes
43 files changed, 9444 insertions, 4593 deletions
diff --git a/idrop-swing/pom.xml b/idrop-swing/pom.xml
index d3d1944..20d88eb 100644
--- a/idrop-swing/pom.xml
+++ b/idrop-swing/pom.xml
@@ -1,9 +1,8 @@
-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.irods</groupId>
<artifactId>idrop</artifactId>
- <version>1.0.3-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.irods.idrop</groupId>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/AddPermissionsDialog.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/AddPermissionsDialog.form
new file mode 100644
index 0000000..097ab59
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/AddPermissionsDialog.form
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="2"/>
+ <Property name="title" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="AddPermissionsDialog.title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+ <Color blue="ff" green="ff" id="white" palette="1" red="ff" type="palette"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[460, 180]"/>
+ </Property>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-100,0,0,1,-44"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlMain">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlPermissionEdit">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="20" left="8" right="8" top="16"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[527, 200]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel3">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel31">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="AddPermissionsDialog.jLabel31.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[120, 16]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="cbPermissionsUserName">
+ <Properties>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="0"/>
+ </Property>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[60, 27]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[260, 27]"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel4">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel32">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="AddPermissionsDialog.jLabel32.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[120, 16]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="cbPermissionsPermission">
+ <Properties>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="0"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[260, 27]"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel1">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="6" left="1" right="1" top="1"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[525, 40]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel2">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[200, 34]"/>
+ </Property>
+ <Property name="requestFocusEnabled" type="boolean" value="false"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnPermissionsCancel">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="AddPermissionsDialog.btnPermissionsCancel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnPermissionsCancelActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnPermissionsAdd">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="AddPermissionsDialog.btnPermissionsAdd.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="actionCommand" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="AddPermissionsDialog.btnPermissionsAdd.actionCommand" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="enabled" type="boolean" value="false"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnPermissionsAddActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/AddPermissionsDialog.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/AddPermissionsDialog.java
new file mode 100644
index 0000000..306da4a
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/AddPermissionsDialog.java
@@ -0,0 +1,227 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.irods.jargon.idrop.desktop.systraygui;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import org.irods.jargon.core.connection.IRODSAccount;
+import org.irods.jargon.core.exception.JargonException;
+import org.irods.jargon.core.protovalues.FilePermissionEnum;
+import org.irods.jargon.core.pub.IRODSFileSystem;
+import org.irods.jargon.core.pub.UserAO;
+import org.irods.jargon.core.pub.domain.User;
+import org.irods.jargon.core.pub.domain.UserFilePermission;
+import org.openide.util.Exceptions;
+
+/**
+ *
+ * @author lisa
+ */
+public class AddPermissionsDialog extends javax.swing.JDialog implements ActionListener {
+
+ IRODSFileSystem irodsFileSystem;
+ IRODSAccount irodsAccount;
+ boolean isCollection;
+ UserFilePermission permissionToAdd = null;
+
+ /**
+ * Creates new form AddPermissionsDialog
+ */
+ public AddPermissionsDialog(javax.swing.JDialog parent,
+ boolean modal,
+ IRODSFileSystem irodsFileSystem,
+ IRODSAccount irodsAccount) {
+ super(parent, modal);
+ initComponents();
+
+ this.irodsFileSystem = irodsFileSystem;
+ this.irodsAccount = irodsAccount;
+
+
+ cbPermissionsPermission.addItem("READ");
+ cbPermissionsPermission.addItem("WRITE");
+ cbPermissionsPermission.addItem("OWN");
+
+ List<User> users = null;
+ try {
+ UserAO userAO = irodsFileSystem.getIRODSAccessObjectFactory().getUserAO(irodsAccount);
+ users = userAO.findAll();
+ Collections.sort(users, new Comparator<User>() {
+ @Override
+ public int compare(final User object1, final User object2) {
+ return object1.getName().compareTo(object2.getName());
+ }
+ } );
+
+ for (User user: users) {
+ cbPermissionsUserName.addItem(user.getNameWithZone());
+ }
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ cbPermissionsPermission.addActionListener(this);
+ cbPermissionsUserName.addActionListener(this);
+
+ updateAddButtonStatus();
+ }
+
+ private void updateAddButtonStatus() {
+ btnPermissionsAdd.setEnabled((cbPermissionsUserName.getSelectedIndex() >= 0) &&
+ (cbPermissionsPermission.getSelectedIndex() >= 0));
+ }
+
+ public UserFilePermission getPermissionToAdd() {
+ return this.permissionToAdd;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+ updateAddButtonStatus();
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ pnlMain = new javax.swing.JPanel();
+ pnlPermissionEdit = new javax.swing.JPanel();
+ jPanel3 = new javax.swing.JPanel();
+ jLabel31 = new javax.swing.JLabel();
+ cbPermissionsUserName = new javax.swing.JComboBox();
+ jPanel4 = new javax.swing.JPanel();
+ jLabel32 = new javax.swing.JLabel();
+ cbPermissionsPermission = new javax.swing.JComboBox();
+ jPanel1 = new javax.swing.JPanel();
+ jPanel2 = new javax.swing.JPanel();
+ btnPermissionsCancel = new javax.swing.JButton();
+ btnPermissionsAdd = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setTitle(org.openide.util.NbBundle.getMessage(AddPermissionsDialog.class, "AddPermissionsDialog.title")); // NOI18N
+ setBackground(java.awt.Color.white);
+ setPreferredSize(new java.awt.Dimension(460, 180));
+
+ pnlMain.setLayout(new java.awt.BorderLayout());
+
+ pnlPermissionEdit.setBorder(javax.swing.BorderFactory.createEmptyBorder(16, 8, 20, 8));
+ pnlPermissionEdit.setPreferredSize(new java.awt.Dimension(527, 200));
+ pnlPermissionEdit.setLayout(new java.awt.BorderLayout());
+
+ jLabel31.setText(org.openide.util.NbBundle.getMessage(AddPermissionsDialog.class, "AddPermissionsDialog.jLabel31.text")); // NOI18N
+ jLabel31.setPreferredSize(new java.awt.Dimension(120, 16));
+ jPanel3.add(jLabel31);
+
+ cbPermissionsUserName.setMinimumSize(new java.awt.Dimension(60, 27));
+ cbPermissionsUserName.setPreferredSize(new java.awt.Dimension(260, 27));
+ jPanel3.add(cbPermissionsUserName);
+
+ pnlPermissionEdit.add(jPanel3, java.awt.BorderLayout.NORTH);
+
+ jLabel32.setText(org.openide.util.NbBundle.getMessage(AddPermissionsDialog.class, "AddPermissionsDialog.jLabel32.text")); // NOI18N
+ jLabel32.setPreferredSize(new java.awt.Dimension(120, 16));
+ jPanel4.add(jLabel32);
+
+ cbPermissionsPermission.setPreferredSize(new java.awt.Dimension(260, 27));
+ jPanel4.add(cbPermissionsPermission);
+
+ pnlPermissionEdit.add(jPanel4, java.awt.BorderLayout.SOUTH);
+
+ pnlMain.add(pnlPermissionEdit, java.awt.BorderLayout.CENTER);
+
+ jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 6, 1));
+ jPanel1.setPreferredSize(new java.awt.Dimension(525, 40));
+ jPanel1.setLayout(new java.awt.BorderLayout());
+
+ jPanel2.setPreferredSize(new java.awt.Dimension(200, 34));
+ jPanel2.setRequestFocusEnabled(false);
+
+ btnPermissionsCancel.setText(org.openide.util.NbBundle.getMessage(AddPermissionsDialog.class, "AddPermissionsDialog.btnPermissionsCancel.text")); // NOI18N
+ btnPermissionsCancel.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnPermissionsCancelActionPerformed(evt);
+ }
+ });
+ jPanel2.add(btnPermissionsCancel);
+
+ btnPermissionsAdd.setText(org.openide.util.NbBundle.getMessage(AddPermissionsDialog.class, "AddPermissionsDialog.btnPermissionsAdd.text")); // NOI18N
+ btnPermissionsAdd.setActionCommand(org.openide.util.NbBundle.getMessage(AddPermissionsDialog.class, "AddPermissionsDialog.btnPermissionsAdd.actionCommand")); // NOI18N
+ btnPermissionsAdd.setEnabled(false);
+ btnPermissionsAdd.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnPermissionsAddActionPerformed(evt);
+ }
+ });
+ jPanel2.add(btnPermissionsAdd);
+
+ jPanel1.add(jPanel2, java.awt.BorderLayout.EAST);
+
+ pnlMain.add(jPanel1, java.awt.BorderLayout.SOUTH);
+
+ getContentPane().add(pnlMain, java.awt.BorderLayout.CENTER);
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void btnPermissionsAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPermissionsAddActionPerformed
+
+ String selectedPermission = (String)cbPermissionsPermission.getSelectedItem();
+ String tmpSelectedUser = (String)cbPermissionsUserName.getSelectedItem();
+ String selectedUser = null;
+
+ // probably have to remve #zone from user name
+ int idx = tmpSelectedUser.indexOf("#");
+ if (idx >= 0) {
+ selectedUser = tmpSelectedUser.substring(0, idx);
+ }
+ else {
+ selectedUser = tmpSelectedUser;
+ }
+
+ try {
+ UserAO userAO = irodsFileSystem.getIRODSAccessObjectFactory().getUserAO(irodsAccount);
+ User user = userAO.findByName(tmpSelectedUser);
+
+ permissionToAdd = new UserFilePermission(
+ selectedUser,
+ user.getId(),
+ FilePermissionEnum.valueOf(selectedPermission),
+ user.getUserType(),
+ user.getZone());
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+
+ this.setVisible(false);
+ }//GEN-LAST:event_btnPermissionsAddActionPerformed
+
+ private void btnPermissionsCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPermissionsCancelActionPerformed
+ this.dispose();
+ }//GEN-LAST:event_btnPermissionsCancelActionPerformed
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton btnPermissionsAdd;
+ private javax.swing.JButton btnPermissionsCancel;
+ private javax.swing.JComboBox cbPermissionsPermission;
+ private javax.swing.JComboBox cbPermissionsUserName;
+ private javax.swing.JLabel jLabel31;
+ private javax.swing.JLabel jLabel32;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel pnlMain;
+ private javax.swing.JPanel pnlPermissionEdit;
+ // End of variables declaration//GEN-END:variables
+
+}
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/CopyMoveDialog.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/CopyMoveDialog.form
new file mode 100644
index 0000000..a50794d
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/CopyMoveDialog.form
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="2"/>
+ <Property name="title" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="CopyMoveDialog.title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[590, 260]"/>
+ </Property>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-16,0,0,2,83"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlFolderData">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[540, 240]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlCurrentParent">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="10" left="4" right="4" top="10"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[500, 190]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel1">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[500, 125]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="lblCurrentParent" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="scrollCurrentParent" min="-2" pref="426" max="-2" attributes="0"/>
+ <EmptySpace pref="31" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace min="45" pref="45" max="-2" attributes="0"/>
+ <Component id="lblCurrentParent" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <Group type="102" attributes="0">
+ <EmptySpace min="5" pref="5" max="-2" attributes="0"/>
+ <Component id="scrollCurrentParent" min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="java.awt.Label" name="lblCurrentParent">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="CopyMoveDialog.lblCurrentParent.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Container class="javax.swing.JScrollPane" name="scrollCurrentParent">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[360, 100]"/>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTextArea" name="txtCurrentParent">
+ <Properties>
+ <Property name="editable" type="boolean" value="false"/>
+ <Property name="columns" type="int" value="20"/>
+ <Property name="rows" type="int" value="5"/>
+ <Property name="wrapStyleWord" type="boolean" value="true"/>
+ <Property name="focusable" type="boolean" value="false"/>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[290, 90]"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel2">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[500, 60]"/>
+ </Property>
+ <Property name="requestFocusEnabled" type="boolean" value="false"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="lblNewDiretoryName" min="-2" pref="111" max="-2" attributes="0"/>
+ <EmptySpace max="32767" attributes="0"/>
+ <Component id="txtNewLocation" min="-2" pref="320" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="btnBrowse" min="-2" pref="100" max="-2" attributes="0"/>
+ <EmptySpace min="-2" pref="30" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace min="9" pref="9" max="-2" attributes="0"/>
+ <Component id="lblNewDiretoryName" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <Group type="102" attributes="0">
+ <EmptySpace min="5" pref="5" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="txtNewLocation" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="btnBrowse" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="java.awt.Label" name="lblNewDiretoryName">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="CopyMoveDialog.lblNewDiretoryName.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtNewLocation">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="CopyMoveDialog.txtNewLocation.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[360, 28]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnBrowse">
+ <Properties>
+ <Property name="label" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="CopyMoveDialog.btnBrowse.label" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnBrowseActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlBottom">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[708, 40]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace min="451" pref="338" max="451" attributes="0"/>
+ <Component id="btnCancel" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="btnMove" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="btnCopy" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace min="5" pref="5" max="5" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="btnCancel" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="btnMove" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="btnCopy" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnCancel">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="CopyMoveDialog.btnCancel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCancelActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMove">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="CopyMoveDialog.btnMove.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMoveActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnCopy">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="CopyMoveDialog.btnCopy.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCopyActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/CopyMoveDialog.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/CopyMoveDialog.java
new file mode 100644
index 0000000..aa26e6e
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/CopyMoveDialog.java
@@ -0,0 +1,514 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.irods.jargon.idrop.desktop.systraygui;
+
+import java.awt.Cursor;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.swing.ListSelectionModel;
+import javax.swing.tree.TreePath;
+import org.irods.jargon.core.exception.JargonException;
+import org.irods.jargon.core.exception.JargonFileOrCollAlreadyExistsException;
+import org.irods.jargon.core.pub.DataTransferOperations;
+import org.irods.jargon.core.pub.io.IRODSFile;
+import org.irods.jargon.idrop.desktop.systraygui.services.IRODSFileService;
+import org.irods.jargon.idrop.desktop.systraygui.utils.TreeUtils;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSNode;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSOutlineModel;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSTree;
+import org.irods.jargon.idrop.exceptions.IdropException;
+import org.irods.jargon.idrop.exceptions.IdropRuntimeException;
+import org.irods.jargon.idrop.finder.IRODSFinderDialog;
+import org.openide.util.Exceptions;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author lisa
+ */
+public class CopyMoveDialog extends javax.swing.JDialog {
+
+
+ private iDrop idropGUI;
+ private IRODSTree irodsTree;
+ private IRODSOutlineModel irodsFileSystemModel;
+ public static org.slf4j.Logger log = LoggerFactory.getLogger(IRODSTree.class);
+
+ /**
+ * Creates new form CopyMoveDialog
+ */
+ public CopyMoveDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ }
+
+ public CopyMoveDialog(final iDrop parent, final boolean modal,
+ final IRODSTree irodsTree) {
+ super(parent, modal);
+ initComponents();
+
+ this.idropGUI = parent;
+ this.irodsTree = irodsTree;
+ this.irodsFileSystemModel = (IRODSOutlineModel) irodsTree.getModel();
+
+ initSourcesFiles();
+ setCopyMoveButtonsState();
+ }
+
+
+ private void initSourcesFiles() {
+ //check for selected objects and/or collections to download
+ // get iRODS File Service
+ IRODSFileService irodsFS = null;
+ try {
+ irodsFS = new IRODSFileService(idropGUI.getiDropCore().getIrodsAccount(),
+ idropGUI.getiDropCore().getIrodsFileSystem());
+ } catch (Exception ex) {
+ //JOptionPane.showMessageDialog(this, "Cannot access iRODS file system for get.");
+ log.error("cannot create irods file service");
+ return;
+ }
+
+ IRODSOutlineModel irodsFileSystemModel = (IRODSOutlineModel) irodsTree.getModel();
+ ListSelectionModel selectionModel = irodsTree.getSelectionModel();
+ int idxStart = selectionModel.getMinSelectionIndex();
+ int idxEnd = selectionModel.getMaxSelectionIndex();
+
+ // now collect all selected nodes
+ IRODSFile ifile = null;
+ //final List<File> sourceFiles = new ArrayList<File>();
+ for (int idx = idxStart; idx <= idxEnd; idx++) {
+ if (selectionModel.isSelectedIndex(idx)) {
+ try {
+ IRODSNode selectedNode = (IRODSNode) irodsFileSystemModel.getValueAt(idx, 0);
+ ifile = irodsFS.getIRODSFileForPath(selectedNode.getFullPath());
+ // rule out "/"
+ String path = ifile.getAbsolutePath();
+ if ((path != null) && (!path.equals("/"))) {
+ txtCurrentParent.append(path + "\n");
+ }
+ } catch (IdropException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ }
+ }
+ }
+
+ private void setCopyMoveButtonsState() {
+ boolean state = ((txtNewLocation.getText().length() > 0) &&
+ (txtCurrentParent.getText().length() > 0));
+ btnCopy.setEnabled(state);
+ btnMove.setEnabled(state);
+ }
+
+ private void processMoveOrCopy(final boolean isCopy) {
+ // add the new folder to irods, add to the tree, and scroll the tree
+ // into view
+ final CopyMoveDialog thisDialog = this;
+ final String targetAbsolutePath = txtNewLocation.getText();
+ final String sourceFiles[] = txtCurrentParent.getText().split("\n");
+
+ log.info("processing move or copy");
+ java.awt.EventQueue.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ IRODSFile irodsFile = null;
+ try {
+ log.info("processing move of a file in iRODS tree");
+ thisDialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+
+ DataTransferOperations dataTransferOperations;
+ try {
+ dataTransferOperations = idropGUI.getiDropCore().getIRODSAccessObjectFactory().getDataTransferOperations(
+ idropGUI.getIrodsAccount());
+ } catch (Exception e) {
+ idropGUI.getiDropCore().closeIRODSConnection(
+ idropGUI.getIrodsAccount());
+ thisDialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ throw new IdropRuntimeException(e);
+ }
+
+ List<IRODSFile> filesThatHadOverwriteError = new ArrayList<IRODSFile>();
+
+ if (sourceFiles.length == 1) {
+ //IRODSFile irodsFile = null;
+ log.info("processing the move/copy for one file:{}",
+ sourceFiles[0]);
+ try {
+ irodsFile =
+ idropGUI.getiDropCore().getIRODSFileFactoryForLoggedInAccount().instanceIRODSFile(sourceFiles[0]);
+ if (isCopy) {
+ processACopyOfAnIndividualFile(
+ dataTransferOperations, irodsFile,
+ targetAbsolutePath);
+ } else {
+ processAMoveOfAnIndividualFile(
+ dataTransferOperations, irodsFile,
+ targetAbsolutePath);
+ }
+ } catch (JargonFileOrCollAlreadyExistsException ex) {
+ Logger.getLogger(
+ MoveOrCopyiRODSDialog.class.getName()).log(
+ Level.SEVERE, null, ex);
+ filesThatHadOverwriteError.add(irodsFile);
+ } catch (JargonException je) {
+ if (je.getMessage().indexOf("-834000") > -1
+ || je.getMessage().indexOf("-833000") > -1) {
+ filesThatHadOverwriteError.add(irodsFile);
+ } else {
+ throw new IdropException(je);
+ }
+ }
+ } else if (sourceFiles.length > 1) {
+ log.info("processing move/copy of multiple files");
+ for (String sourceFileEntry : sourceFiles) {
+
+ try {
+ irodsFile =
+ idropGUI.getiDropCore().getIRODSFileFactoryForLoggedInAccount().instanceIRODSFile(sourceFileEntry);
+ if (isCopy) {
+ processACopyOfAnIndividualFile(
+ dataTransferOperations,
+ irodsFile, targetAbsolutePath);
+ } else {
+ processAMoveOfAnIndividualFile(
+ dataTransferOperations,
+ irodsFile, targetAbsolutePath);
+ }
+ } catch (JargonFileOrCollAlreadyExistsException ex) {
+ // FIXME: fix in jargon core to differentiate!
+ Logger.getLogger(
+ MoveOrCopyiRODSDialog.class.getName()).log(Level.SEVERE, null, ex);
+ filesThatHadOverwriteError.add(irodsFile);
+ } catch (JargonException je) {
+ if (je.getMessage().indexOf("-834000") > -1
+ || je.getMessage().indexOf("-833000") > -1) {
+ filesThatHadOverwriteError.add(irodsFile);
+ } else {
+ throw new IdropException(je);
+ }
+ }
+ }
+ }
+
+ log.debug("move done");
+ if (!isCopy) {
+ if (filesThatHadOverwriteError.isEmpty()) {
+ idropGUI.showMessageFromOperation("irods move processed");
+ } else {
+ idropGUI.showMessageFromOperation("irods move processed, some files were not moved as files of the same name already existed");
+ }
+ } else {
+ idropGUI.showMessageFromOperation("The file copy operation has been placed on the work queue");
+ }
+ thisDialog.dispose();
+
+ } catch (IdropException ex) {
+ Logger.getLogger(IRODSTree.class.getName()).log(
+ Level.SEVERE, null, ex);
+ idropGUI.showIdropException(ex);
+ return;
+ } finally {
+ thisDialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ idropGUI.getiDropCore().closeIRODSConnection(
+ idropGUI.getIrodsAccount());
+ }
+ }
+ });
+ }
+
+ private void processAMoveOfAnIndividualFile(
+ final DataTransferOperations dataTransferOperations,
+ final IRODSFile sourceFile, final String targetAbsolutePath)
+ throws JargonFileOrCollAlreadyExistsException, IdropException {
+
+ try {
+
+ boolean isFile = sourceFile.isFile();
+ IRODSFile targetFile = idropGUI.getiDropCore().getIRODSFileFactoryForLoggedInAccount().instanceIRODSFile(targetAbsolutePath);
+
+ dataTransferOperations.move(sourceFile.getAbsolutePath(),
+ targetAbsolutePath);
+
+ String targetPathForNotify = null;
+ if (isFile) {
+ log.debug("source file is a file, do a move");
+
+ if (targetFile.isDirectory()) {
+ targetPathForNotify = targetFile.getAbsolutePath() + "/"
+ + sourceFile.getName();
+ } else {
+ targetPathForNotify = targetFile.getAbsolutePath();
+ }
+
+ irodsFileSystemModel.notifyFileShouldBeAdded(irodsTree,
+ targetPathForNotify);
+
+ } else {
+ log.debug("source file is a collection, reparent it");
+ targetPathForNotify = targetFile.getAbsolutePath() + "/"
+ + sourceFile.getName();
+
+ irodsFileSystemModel.notifyFileShouldBeAdded(irodsTree,
+ targetPathForNotify);
+ }
+ } catch (JargonFileOrCollAlreadyExistsException fcae) {
+ throw fcae;
+ } catch (JargonException je) {
+ throw new IdropException(je);
+ }
+
+ TreePath sourceNodePath = TreeUtils.buildTreePathForIrodsAbsolutePath(
+ irodsTree, sourceFile.getAbsolutePath());
+ if (sourceNodePath == null) {
+ log.info("could not find tree path for source node, ignore");
+ return;
+ }
+ IRODSNode sourceNode = (IRODSNode) sourceNodePath.getLastPathComponent();
+ irodsFileSystemModel.notifyFileShouldBeRemoved(sourceNode);
+ }
+
+ private void processACopyOfAnIndividualFile(
+ final DataTransferOperations dataTransferOperations,
+ final IRODSFile sourceFile, final String targetAbsolutePath)
+ throws IdropException {
+ try {
+ dataTransferOperations.copy(sourceFile.getAbsolutePath(),
+ idropGUI.getiDropCore().getIrodsAccount().getDefaultStorageResource(),
+ targetAbsolutePath,
+ null,
+ null);
+ //idropGUI.getiDropCore().getTransferManager().enqueueACopy(sourceFile.getAbsolutePath(),
+ //sourceFile.getResource(), targetAbsolutePath,
+ //idropGUI.getiDropCore().getIrodsAccount());
+
+ } catch (JargonException ex) {
+ Logger.getLogger(MoveOrCopyiRODSDialog.class.getName()).log(
+ Level.SEVERE, null, ex);
+ throw new IdropException(
+ "unable to copy file due to JargonException", ex);
+ }
+
+ // notifications are done at completion of transfer using status
+ // callbacks
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ pnlFolderData = new javax.swing.JPanel();
+ pnlCurrentParent = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ lblCurrentParent = new java.awt.Label();
+ scrollCurrentParent = new javax.swing.JScrollPane();
+ txtCurrentParent = new javax.swing.JTextArea();
+ jPanel2 = new javax.swing.JPanel();
+ lblNewDiretoryName = new java.awt.Label();
+ txtNewLocation = new javax.swing.JTextField();
+ btnBrowse = new javax.swing.JButton();
+ pnlBottom = new javax.swing.JPanel();
+ btnCancel = new javax.swing.JButton();
+ btnMove = new javax.swing.JButton();
+ btnCopy = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setTitle(org.openide.util.NbBundle.getMessage(CopyMoveDialog.class, "CopyMoveDialog.title")); // NOI18N
+ setPreferredSize(new java.awt.Dimension(590, 260));
+
+ pnlFolderData.setPreferredSize(new java.awt.Dimension(540, 240));
+ pnlFolderData.setLayout(new java.awt.BorderLayout());
+
+ pnlCurrentParent.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 4, 10, 4));
+ pnlCurrentParent.setPreferredSize(new java.awt.Dimension(500, 190));
+ pnlCurrentParent.setLayout(new java.awt.BorderLayout());
+
+ jPanel1.setPreferredSize(new java.awt.Dimension(500, 125));
+
+ lblCurrentParent.setText(org.openide.util.NbBundle.getMessage(CopyMoveDialog.class, "CopyMoveDialog.lblCurrentParent.text")); // NOI18N
+
+ scrollCurrentParent.setPreferredSize(new java.awt.Dimension(360, 100));
+
+ txtCurrentParent.setEditable(false);
+ txtCurrentParent.setColumns(20);
+ txtCurrentParent.setRows(5);
+ txtCurrentParent.setWrapStyleWord(true);
+ txtCurrentParent.setFocusable(false);
+ txtCurrentParent.setPreferredSize(new java.awt.Dimension(290, 90));
+ scrollCurrentParent.setViewportView(txtCurrentParent);
+
+ org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
+ jPanel1.setLayout(jPanel1Layout);
+ jPanel1Layout.setHorizontalGroup(
+ jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .add(lblCurrentParent, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(scrollCurrentParent, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 426, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(31, Short.MAX_VALUE))
+ );
+ jPanel1Layout.setVerticalGroup(
+ jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel1Layout.createSequentialGroup()
+ .add(45, 45, 45)
+ .add(lblCurrentParent, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .add(jPanel1Layout.createSequentialGroup()
+ .add(5, 5, 5)
+ .add(scrollCurrentParent, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ );
+
+ pnlCurrentParent.add(jPanel1, java.awt.BorderLayout.NORTH);
+
+ jPanel2.setPreferredSize(new java.awt.Dimension(500, 60));
+ jPanel2.setRequestFocusEnabled(false);
+
+ lblNewDiretoryName.setText(org.openide.util.NbBundle.getMessage(CopyMoveDialog.class, "CopyMoveDialog.lblNewDiretoryName.text")); // NOI18N
+
+ txtNewLocation.setText(org.openide.util.NbBundle.getMessage(CopyMoveDialog.class, "CopyMoveDialog.txtNewLocation.text")); // NOI18N
+ txtNewLocation.setPreferredSize(new java.awt.Dimension(360, 28));
+
+ btnBrowse.setLabel(org.openide.util.NbBundle.getMessage(CopyMoveDialog.class, "CopyMoveDialog.btnBrowse.label")); // NOI18N
+ btnBrowse.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnBrowseActionPerformed(evt);
+ }
+ });
+
+ org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel2Layout.createSequentialGroup()
+ .addContainerGap()
+ .add(lblNewDiretoryName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 111, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(txtNewLocation, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 320, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(btnBrowse, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(30, 30, 30))
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel2Layout.createSequentialGroup()
+ .add(9, 9, 9)
+ .add(lblNewDiretoryName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .add(jPanel2Layout.createSequentialGroup()
+ .add(5, 5, 5)
+ .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(txtNewLocation, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(btnBrowse)))
+ );
+
+ pnlCurrentParent.add(jPanel2, java.awt.BorderLayout.SOUTH);
+
+ pnlFolderData.add(pnlCurrentParent, java.awt.BorderLayout.CENTER);
+
+ pnlBottom.setPreferredSize(new java.awt.Dimension(708, 40));
+
+ btnCancel.setText(org.openide.util.NbBundle.getMessage(CopyMoveDialog.class, "CopyMoveDialog.btnCancel.text")); // NOI18N
+ btnCancel.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnCancelActionPerformed(evt);
+ }
+ });
+
+ btnMove.setText(org.openide.util.NbBundle.getMessage(CopyMoveDialog.class, "CopyMoveDialog.btnMove.text")); // NOI18N
+ btnMove.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnMoveActionPerformed(evt);
+ }
+ });
+
+ btnCopy.setText(org.openide.util.NbBundle.getMessage(CopyMoveDialog.class, "CopyMoveDialog.btnCopy.text")); // NOI18N
+ btnCopy.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnCopyActionPerformed(evt);
+ }
+ });
+
+ org.jdesktop.layout.GroupLayout pnlBottomLayout = new org.jdesktop.layout.GroupLayout(pnlBottom);
+ pnlBottom.setLayout(pnlBottomLayout);
+ pnlBottomLayout.setHorizontalGroup(
+ pnlBottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlBottomLayout.createSequentialGroup()
+ .add(338, 338, 451)
+ .add(btnCancel)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(btnMove)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(btnCopy)
+ .addContainerGap())
+ );
+ pnlBottomLayout.setVerticalGroup(
+ pnlBottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlBottomLayout.createSequentialGroup()
+ .add(5, 5, 5)
+ .add(pnlBottomLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(btnCancel)
+ .add(btnMove)
+ .add(btnCopy)))
+ );
+
+ pnlFolderData.add(pnlBottom, java.awt.BorderLayout.SOUTH);
+
+ getContentPane().add(pnlFolderData, java.awt.BorderLayout.CENTER);
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
+ this.dispose();
+ }//GEN-LAST:event_btnCancelActionPerformed
+
+ private void btnMoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMoveActionPerformed
+ processMoveOrCopy(false);
+ }//GEN-LAST:event_btnMoveActionPerformed
+
+ private void btnBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBrowseActionPerformed
+ IRODSFinderDialog irodsFinder = new IRODSFinderDialog(
+ idropGUI, false, idropGUI.getiDropCore());
+ irodsFinder.setTitle("Select iRODS Collection Upload Target");
+ irodsFinder.setSelectionType(IRODSFinderDialog.SelectionType.COLLS_ONLY_SELECTION_MODE);
+ irodsFinder.setLocation(
+ (int)this.getLocation().getX(), (int)this.getLocation().getY());
+ irodsFinder.setVisible(true);
+
+ String selectedPath = irodsFinder.getSelectedAbsolutePath();
+ if (selectedPath != null) {
+ txtNewLocation.setText(selectedPath);
+ }
+ setCopyMoveButtonsState();
+ }//GEN-LAST:event_btnBrowseActionPerformed
+
+ private void btnCopyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCopyActionPerformed
+ processMoveOrCopy(true);
+ }//GEN-LAST:event_btnCopyActionPerformed
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton btnBrowse;
+ private javax.swing.JButton btnCancel;
+ private javax.swing.JButton btnCopy;
+ private javax.swing.JButton btnMove;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private java.awt.Label lblCurrentParent;
+ private java.awt.Label lblNewDiretoryName;
+ private javax.swing.JPanel pnlBottom;
+ private javax.swing.JPanel pnlCurrentParent;
+ private javax.swing.JPanel pnlFolderData;
+ private javax.swing.JScrollPane scrollCurrentParent;
+ private javax.swing.JTextArea txtCurrentParent;
+ private javax.swing.JTextField txtNewLocation;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.form
index c843416..0ceaf86 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.form
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.form
@@ -1,4 +1,4 @@
-<?xml version="1.1" encoding="UTF-8" ?>
+<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
<Properties>
@@ -50,7 +50,7 @@
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
- <EmptySpace pref="40" max="32767" attributes="0"/>
+ <EmptySpace pref="54" max="32767" attributes="0"/>
<Component id="lblCurrentFolder" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="scrollFileToDelete" min="-2" pref="413" max="-2" attributes="1"/>
@@ -71,7 +71,7 @@
<Component id="scrollFileToDelete" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
- <EmptySpace max="32767" attributes="0"/>
+ <EmptySpace pref="20" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.java
index 633fb04..51ab48f 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.java
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DeleteIRODSDialog.java
@@ -71,7 +71,22 @@ public class DeleteIRODSDialog extends javax.swing.JDialog {
this.deletedNodes = deletedNodes;
this.deletedNode = null;
initialize();
- txtAreaFileToDelete.setText("multiple selections");
+ int deletedNodesCount = deletedNodes.size();
+ for(int idx=0; idx<deletedNodesCount; idx++) {
+ CollectionAndDataObjectListingEntry entry =
+ (CollectionAndDataObjectListingEntry) deletedNodes.get(idx).getUserObject();
+ if (entry.getObjectType() == CollectionAndDataObjectListingEntry.ObjectType.COLLECTION) {
+ txtAreaFileToDelete.append(entry.getPathOrName());
+ } else {
+ txtAreaFileToDelete.append(entry.getParentPath());
+ txtAreaFileToDelete.append("/");
+ txtAreaFileToDelete.append(entry.getPathOrName());
+ }
+ if (idx < deletedNodesCount-1 ) {
+ txtAreaFileToDelete.append("\n");
+ }
+ }
+ //txtAreaFileToDelete.setText("multiple selections");
}
private void initialize() {
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DownloadDialog.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DownloadDialog.form
new file mode 100644
index 0000000..66ab6a1
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DownloadDialog.form
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="2"/>
+ <Property name="title" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[600, 420]"/>
+ </Property>
+ </Properties>
+ <AccessibilityProperties>
+ <Property name="AccessibleContext.accessibleName" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.AccessibleContext.accessibleName" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </AccessibilityProperties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-112,0,0,2,-121"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel1">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="6" left="6" right="6" top="6"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[600, 350]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel3">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="4" right="4" top="14"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[303, 250]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel2">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTable" name="tblFilesToDownload">
+ <Properties>
+ <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
+ <Table columnCount="1" rowCount="0">
+ <Column editable="false" title="File" type="java.lang.String"/>
+ </Table>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel6">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 25]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel16">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="West"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout">
+ <Property name="horizontalGap" type="int" value="1"/>
+ <Property name="verticalGap" type="int" value="1"/>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnAddDownloadFile">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.btnAddDownloadFile.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[22, 24]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnAddDownloadFileActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnDeleteDownloadFile">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.btnDeleteDownloadFile.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[22, 24]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnDeleteDownloadFileActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel4">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
+ <EtchetBorder/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[240, 76]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel9">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[600, 32]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel11">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[400, 40]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="West"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel1">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtDownloadTarget">
+ <Properties>
+ <Property name="editable" type="boolean" value="false"/>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.txtDownloadTarget.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[220, 28]"/>
+ </Property>
+ <Property name="requestFocusEnabled" type="boolean" value="false"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel12">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[200, 40]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnBrowseDownloadTarget">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.btnBrowseDownloadTarget.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnBrowseDownloadTargetActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel10">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="10" left="1" right="1" top="1"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[600, 40]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel13">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 40]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="West"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel14">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[430, 40]"/>
+ </Property>
+ <Property name="requestFocusEnabled" type="boolean" value="false"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnUseLocaLHome">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.btnUseLocaLHome.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnUseLocaLHomeActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnUseLastDownload">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.btnUseLastDownload.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnUseLastDownloadActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel2">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel15">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnDownloadNow">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.btnDownloadNow.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="enabled" type="boolean" value="false"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnDownloadNowActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnCancel">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="DownloadDialog.btnCancel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCancelActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DownloadDialog.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DownloadDialog.java
new file mode 100644
index 0000000..045e3d6
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/DownloadDialog.java
@@ -0,0 +1,536 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.irods.jargon.idrop.desktop.systraygui;
+
+import java.awt.Cursor;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import javax.swing.JFileChooser;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.tree.TreePath;
+import org.irods.jargon.core.exception.JargonException;
+import org.irods.jargon.core.pub.io.IRODSFile;
+import org.irods.jargon.core.utils.MiscIRODSUtils;
+import org.irods.jargon.idrop.desktop.systraygui.services.IRODSFileService;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSNode;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSOutlineModel;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSTree;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.LocalFileNode;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.LocalFileTree;
+import org.irods.jargon.idrop.exceptions.IdropException;
+import org.irods.jargon.idrop.exceptions.IdropRuntimeException;
+import org.irods.jargon.idrop.finder.IRODSFinderDialog;
+import org.irods.jargon.transfer.dao.domain.LocalIRODSTransfer;
+import org.irods.jargon.transfer.dao.domain.TransferType;
+import org.openide.util.Exceptions;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author lisa
+ */
+public class DownloadDialog extends javax.swing.JDialog implements ListSelectionListener {
+
+ iDrop idropGUI;
+ IRODSTree irodsTree;
+ LocalFileTree localFileTree;
+ public static org.slf4j.Logger log = LoggerFactory.getLogger(IRODSTree.class);
+
+ /**
+ * Creates new form DownloadDialog
+ */
+ public DownloadDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ }
+
+ public DownloadDialog(final iDrop parent, final boolean modal,
+ final IRODSTree irodsTree,
+ final LocalFileTree localFileTree) {
+ super(parent, modal);
+ initComponents();
+
+ this.idropGUI = parent;
+ this.irodsTree = irodsTree;
+ this.localFileTree = localFileTree;
+ this.btnDeleteDownloadFile.setEnabled(false);
+ tblFilesToDownload.getSelectionModel().addListSelectionListener(this);
+
+ initDownloadTarget();
+ initSourcesFiles();
+ setDownloadButtonState();
+ }
+
+ private void initDownloadTarget() {
+
+ String target = "";
+
+ //first check to see if a download target is selected in the local file tree
+ TreePath treePath = localFileTree.getSelectionPath();
+ if(treePath != null) {
+ LocalFileNode selectedFileNode = (LocalFileNode) localFileTree.getSelectionPath().getLastPathComponent();
+ File targetPath = (File) selectedFileNode.getUserObject();
+ if (targetPath.isDirectory()) {
+ target = targetPath.getAbsolutePath();
+ }
+ }
+// else {
+// // next see if can find some get history in the transfer queue
+// try {
+// List<LocalIRODSTransfer> transfers = idropGUI.getiDropCore().getTransferManager().getRecentQueue();
+//
+// // assuming most recent first
+// for (LocalIRODSTransfer transfer: transfers) {
+// if (transfer.getTransferType() == TransferType.GET) {
+// target = transfer.getLocalAbsolutePath();
+// break;
+// }
+// }
+// } catch (JargonException ex) {
+// Exceptions.printStackTrace(ex);
+// }
+// }
+
+ txtDownloadTarget.setText(target);
+ }
+
+ private void initSourcesFiles() {
+ //check for selected objects and/or collections to download
+ // get iRODS File Service
+ IRODSFileService irodsFS = null;
+ try {
+ irodsFS = new IRODSFileService(idropGUI.getiDropCore().getIrodsAccount(),
+ idropGUI.getiDropCore().getIrodsFileSystem());
+ } catch (Exception ex) {
+ //JOptionPane.showMessageDialog(this, "Cannot access iRODS file system for get.");
+ log.error("cannot create irods file service");
+ return;
+ }
+
+ IRODSOutlineModel irodsFileSystemModel = (IRODSOutlineModel) irodsTree.getModel();
+ ListSelectionModel selectionModel = irodsTree.getSelectionModel();
+ int idxStart = selectionModel.getMinSelectionIndex();
+ int idxEnd = selectionModel.getMaxSelectionIndex();
+
+ // now collect all selected nodes
+ List<IRODSFile> ifiles = new ArrayList<IRODSFile>();
+
+ for (int idx = idxStart; idx <= idxEnd; idx++) {
+ if (selectionModel.isSelectedIndex(idx)) {
+ try {
+ IRODSNode selectedNode = (IRODSNode) irodsFileSystemModel.getValueAt(idx, 0);
+ ifiles.add(irodsFS.getIRODSFileForPath(selectedNode.getFullPath()));
+ } catch (IdropException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ }
+ }
+
+ setFilesToDownload(ifiles);
+ }
+
+ private void executeDownload() {
+
+ idropGUI.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+
+ final String targetPath = txtDownloadTarget.getText();
+ final String sourceFiles[] = getFilesToDownload();
+
+
+ // process as a get
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ for (String transferFile : sourceFiles) {
+ log.info("initiating a transfer of iRODS file:{}",
+ transferFile);
+ log.info("transfer to local file:{}",
+ targetPath);
+ try {
+ idropGUI.getiDropCore().getTransferManager().enqueueAGet(
+ transferFile,
+ targetPath,
+ "", idropGUI.getIrodsAccount());
+ } catch (JargonException ex) {
+ java.util.logging.Logger.getLogger(
+ LocalFileTree.class.getName()).log(
+ java.util.logging.Level.SEVERE, null, ex);
+ idropGUI.showIdropException(ex);
+ }
+ }
+ }
+ });
+ idropGUI.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+
+ private void setDownloadButtonState() {
+ btnDownloadNow.setEnabled(((txtDownloadTarget.getText().length() > 0) &&
+ (tblFilesToDownload.getModel().getRowCount() > 0)));
+ }
+
+ private void setFilesToDownload(List<IRODSFile> ifiles) {
+
+ DefaultTableModel model = (DefaultTableModel) tblFilesToDownload.getModel();
+
+ for(int i=0; i<ifiles.size(); i++) {
+ String filePath = ifiles.get(i).getAbsolutePath();
+ model.addRow(new Object[] {filePath});
+ }
+ }
+
+ private String[] getFilesToDownload() {
+
+ int numFiles = 0;
+ DefaultTableModel model = (DefaultTableModel) tblFilesToDownload.getModel();
+ numFiles = model.getRowCount();
+ String[] filesToDownload = new String[numFiles];
+
+ for (int i=0; i<numFiles; i++) {
+ filesToDownload[i] = (String) model.getValueAt(i, 0);
+ }
+
+ return filesToDownload;
+ }
+
+
+ @Override
+ public void valueChanged(ListSelectionEvent lse) {
+ if (lse.getValueIsAdjusting() == false) {
+ btnDeleteDownloadFile.setEnabled(tblFilesToDownload.getSelectedRow() >= 0);
+ }
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanel1 = new javax.swing.JPanel();
+ jPanel3 = new javax.swing.JPanel();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ tblFilesToDownload = new javax.swing.JTable();
+ jPanel6 = new javax.swing.JPanel();
+ jPanel16 = new javax.swing.JPanel();
+ btnAddDownloadFile = new javax.swing.JButton();
+ btnDeleteDownloadFile = new javax.swing.JButton();
+ jPanel4 = new javax.swing.JPanel();
+ jPanel9 = new javax.swing.JPanel();
+ jPanel11 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ txtDownloadTarget = new javax.swing.JTextField();
+ jPanel12 = new javax.swing.JPanel();
+ btnBrowseDownloadTarget = new javax.swing.JButton();
+ jPanel10 = new javax.swing.JPanel();
+ jPanel13 = new javax.swing.JPanel();
+ jPanel14 = new javax.swing.JPanel();
+ btnUseLocaLHome = new javax.swing.JButton();
+ btnUseLastDownload = new javax.swing.JButton();
+ jPanel2 = new javax.swing.JPanel();
+ jPanel15 = new javax.swing.JPanel();
+ btnDownloadNow = new javax.swing.JButton();
+ btnCancel = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setTitle(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.title")); // NOI18N
+ setPreferredSize(new java.awt.Dimension(600, 420));
+
+ jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(6, 6, 6, 6));
+ jPanel1.setPreferredSize(new java.awt.Dimension(600, 350));
+ jPanel1.setLayout(new java.awt.BorderLayout());
+
+ jPanel3.setBorder(javax.swing.BorderFactory.createEmptyBorder(14, 4, 1, 4));
+ jPanel3.setPreferredSize(new java.awt.Dimension(303, 250));
+ jPanel3.setLayout(new java.awt.BorderLayout());
+
+ jLabel2.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.jLabel2.text")); // NOI18N
+ jPanel3.add(jLabel2, java.awt.BorderLayout.NORTH);
+
+ tblFilesToDownload.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+ "File"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.String.class
+ };
+ boolean[] canEdit = new boolean [] {
+ false
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return canEdit [columnIndex];
+ }
+ });
+ jScrollPane1.setViewportView(tblFilesToDownload);
+
+ jPanel3.add(jScrollPane1, java.awt.BorderLayout.CENTER);
+
+ jPanel6.setPreferredSize(new java.awt.Dimension(100, 25));
+ jPanel6.setLayout(new java.awt.BorderLayout());
+
+ jPanel16.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 1, 1));
+
+ btnAddDownloadFile.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.btnAddDownloadFile.text")); // NOI18N
+ btnAddDownloadFile.setPreferredSize(new java.awt.Dimension(22, 24));
+ btnAddDownloadFile.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnAddDownloadFileActionPerformed(evt);
+ }
+ });
+ jPanel16.add(btnAddDownloadFile);
+
+ btnDeleteDownloadFile.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.btnDeleteDownloadFile.text")); // NOI18N
+ btnDeleteDownloadFile.setPreferredSize(new java.awt.Dimension(22, 24));
+ btnDeleteDownloadFile.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnDeleteDownloadFileActionPerformed(evt);
+ }
+ });
+ jPanel16.add(btnDeleteDownloadFile);
+
+ jPanel6.add(jPanel16, java.awt.BorderLayout.WEST);
+
+ jPanel3.add(jPanel6, java.awt.BorderLayout.SOUTH);
+
+ jPanel1.add(jPanel3, java.awt.BorderLayout.NORTH);
+
+ jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ jPanel4.setPreferredSize(new java.awt.Dimension(240, 76));
+ jPanel4.setLayout(new java.awt.BorderLayout());
+
+ jPanel9.setPreferredSize(new java.awt.Dimension(600, 32));
+ jPanel9.setLayout(new java.awt.BorderLayout());
+
+ jPanel11.setPreferredSize(new java.awt.Dimension(400, 40));
+
+ jLabel1.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.jLabel1.text")); // NOI18N
+ jPanel11.add(jLabel1);
+
+ txtDownloadTarget.setEditable(false);
+ txtDownloadTarget.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.txtDownloadTarget.text")); // NOI18N
+ txtDownloadTarget.setPreferredSize(new java.awt.Dimension(220, 28));
+ txtDownloadTarget.setRequestFocusEnabled(false);
+ jPanel11.add(txtDownloadTarget);
+
+ jPanel9.add(jPanel11, java.awt.BorderLayout.WEST);
+
+ jPanel12.setPreferredSize(new java.awt.Dimension(200, 40));
+
+ btnBrowseDownloadTarget.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.btnBrowseDownloadTarget.text")); // NOI18N
+ btnBrowseDownloadTarget.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnBrowseDownloadTargetActionPerformed(evt);
+ }
+ });
+ jPanel12.add(btnBrowseDownloadTarget);
+
+ jPanel9.add(jPanel12, java.awt.BorderLayout.EAST);
+
+ jPanel4.add(jPanel9, java.awt.BorderLayout.NORTH);
+
+ jPanel10.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 10, 1));
+ jPanel10.setPreferredSize(new java.awt.Dimension(600, 40));
+ jPanel10.setLayout(new java.awt.BorderLayout());
+
+ jPanel13.setPreferredSize(new java.awt.Dimension(100, 40));
+ jPanel10.add(jPanel13, java.awt.BorderLayout.WEST);
+
+ jPanel14.setPreferredSize(new java.awt.Dimension(430, 40));
+ jPanel14.setRequestFocusEnabled(false);
+
+ btnUseLocaLHome.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.btnUseLocaLHome.text")); // NOI18N
+ btnUseLocaLHome.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnUseLocaLHomeActionPerformed(evt);
+ }
+ });
+ jPanel14.add(btnUseLocaLHome);
+
+ btnUseLastDownload.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.btnUseLastDownload.text")); // NOI18N
+ btnUseLastDownload.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnUseLastDownloadActionPerformed(evt);
+ }
+ });
+ jPanel14.add(btnUseLastDownload);
+
+ jPanel10.add(jPanel14, java.awt.BorderLayout.EAST);
+
+ jPanel4.add(jPanel10, java.awt.BorderLayout.SOUTH);
+
+ jPanel1.add(jPanel4, java.awt.BorderLayout.SOUTH);
+
+ getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);
+
+ jPanel2.setLayout(new java.awt.BorderLayout());
+
+ btnDownloadNow.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.btnDownloadNow.text")); // NOI18N
+ btnDownloadNow.setEnabled(false);
+ btnDownloadNow.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnDownloadNowActionPerformed(evt);
+ }
+ });
+ jPanel15.add(btnDownloadNow);
+
+ btnCancel.setText(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.btnCancel.text")); // NOI18N
+ btnCancel.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnCancelActionPerformed(evt);
+ }
+ });
+ jPanel15.add(btnCancel);
+
+ jPanel2.add(jPanel15, java.awt.BorderLayout.EAST);
+
+ getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);
+
+ getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(DownloadDialog.class, "DownloadDialog.AccessibleContext.accessibleName")); // NOI18N
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void btnBrowseDownloadTargetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBrowseDownloadTargetActionPerformed
+
+ JFileChooser localFileChooser = new JFileChooser();
+ localFileChooser.setMultiSelectionEnabled(false);
+ localFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+ localFileChooser.setDialogTitle("Select Download Target");
+ localFileChooser.setLocation(
+ (int)this.getLocation().getX(), (int)this.getLocation().getY());
+ int returnVal = localFileChooser.showOpenDialog(this);
+
+ if (returnVal == JFileChooser.APPROVE_OPTION) {
+ String downloadPath = localFileChooser.getSelectedFile().getAbsolutePath();
+ txtDownloadTarget.setText(downloadPath);
+ setDownloadButtonState();
+ }
+ }//GEN-LAST:event_btnBrowseDownloadTargetActionPerformed
+
+ private void btnUseLocaLHomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUseLocaLHomeActionPerformed
+ String target = System.getProperty("user.home");
+
+ if (target != null) {
+ txtDownloadTarget.setText(target);
+ }
+ setDownloadButtonState();
+ }//GEN-LAST:event_btnUseLocaLHomeActionPerformed
+
+ private void btnUseLastDownloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUseLastDownloadActionPerformed
+ String target = "";
+ // see if can find some get history in the transfer queue
+ try {
+ List<LocalIRODSTransfer> transfers = idropGUI.getiDropCore().getTransferManager().getRecentQueue();
+
+ // assuming most recent first
+ for (LocalIRODSTransfer transfer: transfers) {
+ // must check to match type, user, host, zone, & resource
+ if ((transfer.getTransferType() == TransferType.GET) &&
+ (transfer.getTransferUserName().equals(idropGUI.getiDropCore().getIrodsAccount().getUserName())) &&
+ (transfer.getTransferZone().equals(idropGUI.getiDropCore().getIrodsAccount().getZone())) &&
+ (transfer.getTransferPort() == idropGUI.getiDropCore().getIrodsAccount().getPort()) &&
+ (transfer.getTransferHost().equals(idropGUI.getiDropCore().getIrodsAccount().getHost()))) {
+ target = transfer.getLocalAbsolutePath();
+ break;
+ }
+ }
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ if (target != null) {
+ txtDownloadTarget.setText(target);
+ }
+ setDownloadButtonState();
+ }//GEN-LAST:event_btnUseLastDownloadActionPerformed
+
+ private void btnAddDownloadFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddDownloadFileActionPerformed
+ IRODSFinderDialog irodsFinder = new IRODSFinderDialog(
+ idropGUI, false, idropGUI.getiDropCore());
+ irodsFinder.setTitle("Select iRODS Files and Collections for download");
+ irodsFinder.setSelectionType(IRODSFinderDialog.SelectionType.OBJS_AND_COLLS_SELECTION_MODE);
+ irodsFinder.setLocation(
+ (int)this.getLocation().getX(), (int)this.getLocation().getY());
+ irodsFinder.setVisible(true);
+
+ List<String> selectedPaths = irodsFinder.getSelectedAbsolutePaths();
+ for (String selectedPath: selectedPaths) {
+ if (selectedPath != null) {
+ DefaultTableModel model = (DefaultTableModel) tblFilesToDownload.getModel();
+ model.addRow(new Object[] {selectedPath});
+ }
+ }
+ setDownloadButtonState();
+ }//GEN-LAST:event_btnAddDownloadFileActionPerformed
+
+ private void btnDeleteDownloadFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteDownloadFileActionPerformed
+
+ int[] selectedRows = tblFilesToDownload.getSelectedRows();
+ int numRowsSelected = selectedRows.length;
+
+ // have to remove rows in reverse
+ for(int i=numRowsSelected-1; i>=0; i--) {
+ //for (int selectedRow: selectedRows) {
+ int selectedRow = selectedRows[i];
+ if (selectedRow >= 0) {
+ DefaultTableModel model = (DefaultTableModel) tblFilesToDownload.getModel();
+ model.removeRow(selectedRow);
+ }
+ }
+ }//GEN-LAST:event_btnDeleteDownloadFileActionPerformed
+
+ private void btnDownloadNowActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDownloadNowActionPerformed
+ executeDownload();
+ this.dispose();
+ }//GEN-LAST:event_btnDownloadNowActionPerformed
+
+ private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
+ this.dispose();
+ }//GEN-LAST:event_btnCancelActionPerformed
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton btnAddDownloadFile;
+ private javax.swing.JButton btnBrowseDownloadTarget;
+ private javax.swing.JButton btnCancel;
+ private javax.swing.JButton btnDeleteDownloadFile;
+ private javax.swing.JButton btnDownloadNow;
+ private javax.swing.JButton btnUseLastDownload;
+ private javax.swing.JButton btnUseLocaLHome;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel10;
+ private javax.swing.JPanel jPanel11;
+ private javax.swing.JPanel jPanel12;
+ private javax.swing.JPanel jPanel13;
+ private javax.swing.JPanel jPanel14;
+ private javax.swing.JPanel jPanel15;
+ private javax.swing.JPanel jPanel16;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel6;
+ private javax.swing.JPanel jPanel9;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTable tblFilesToDownload;
+ private javax.swing.JTextField txtDownloadTarget;
+ // End of variables declaration//GEN-END:variables
+
+}
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.java
index 2f263b5..e395fb6 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.java
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.java
@@ -1883,6 +1883,11 @@ public class IDROPConfigurationPanel extends javax.swing.JDialog {
throw new IdropRuntimeException("error getting resource list", ex);
}
}
+ // check to see if default resource editing is allowed
+ String allowEdit = idropCore.getIdropConfig().getPropertyForKey(IdropConfigurationService.IDROP_ENABLE_RESC_EDIT);
+ if (allowEdit != null && allowEdit.equals("false")) {
+ comboPrefsDefaultResource.setEnabled(false);
+ }
}
protected void updateDetailsForSelectedSynch(int i) {
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.form
new file mode 100644
index 0000000..6a4a44b
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.form
@@ -0,0 +1,1457 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.6" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <NonVisualComponents>
+ <Container class="javax.swing.JPanel" name="jPanel2">
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <EmptySpace min="0" pref="100" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <EmptySpace min="0" pref="100" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ </Container>
+ </NonVisualComponents>
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="2"/>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[560, 720]"/>
+ </Property>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,3,-63,0,0,2,97"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel1">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="10" left="10" right="10" top="14"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[600, 750]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlSelectedObject">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="4" right="4" top="1"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[528, 70]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="First"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" max="-2" attributes="0">
+ <Component id="lblObjectCollection" pref="140" max="32767" attributes="0"/>
+ <Component id="jLabel2" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" max="-2" attributes="0">
+ <Component id="lblInfoObjectName" pref="362" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectParent" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace pref="67" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="lblObjectCollection" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectName" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel2" alignment="3" min="-2" pref="20" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectParent" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace pref="19" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="lblObjectCollection">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Lucida Grande" size="14" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblObjectCollection.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel2">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Lucida Grande" size="14" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectName">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectName.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectParent">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectParent.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JTabbedPane" name="tabbedpanelMain">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[600, 867]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlInfoTab">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
+ <JTabbedPaneConstraints tabName="Info">
+ <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.pnlInfoTab.TabConstraints.tabTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </JTabbedPaneConstraints>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlInfoCards">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
+ <EtchetBorder/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[555, 640]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignCardLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlCollectionInfo">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[515, 500]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignCardLayout" value="org.netbeans.modules.form.compat2.layouts.DesignCardLayout$CardConstraintsDescription">
+ <CardConstraints cardName="cardCollectionInfo"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" max="-2" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel22" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel23" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel24" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel25" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel26" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel27" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="24" pref="24" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="lblInfoCollectionOwnerZone" alignment="0" pref="400" max="32767" attributes="0"/>
+ <Component id="lblInfoCollectionType" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoCollectionObjectPath" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoCollectionDescription" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoCollectionInfo1" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoCollectionInfo2" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ <Group type="102" alignment="0" attributes="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel19" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel20" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel21" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="47" pref="47" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" max="-2" attributes="0">
+ <Component id="lblInfoCollectionCreatedDate" alignment="0" pref="400" max="32767" attributes="0"/>
+ <Component id="lblInfoCollectionModifiedDate" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoCollectionOwner" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ <EmptySpace min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace min="-2" pref="24" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel19" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionCreatedDate" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel20" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionModifiedDate" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel21" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionOwner" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel22" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionOwnerZone" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel23" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionType" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel24" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionObjectPath" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel25" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionDescription" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel26" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionInfo1" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel27" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoCollectionInfo2" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace pref="289" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel19">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel19.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel20">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel20.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel21">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel21.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel22">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel22.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel23">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel23.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel24">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel24.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel25">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel25.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel26">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel26.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel27">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel27.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionCreatedDate">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionCreatedDate.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionModifiedDate">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionModifiedDate.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionOwner">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionOwner.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionOwnerZone">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionOwnerZone.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionType">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionType.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionObjectPath">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionObjectPath.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionDescription">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionDescription.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionInfo1">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionInfo1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoCollectionInfo2">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoCollectionInfo2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlObjectInfo">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[550, 530]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignCardLayout" value="org.netbeans.modules.form.compat2.layouts.DesignCardLayout$CardConstraintsDescription">
+ <CardConstraints cardName="cardObjectInfo"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" max="-2" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel3" alignment="0" min="-2" pref="70" max="-2" attributes="0"/>
+ <Component id="jLabel4" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel5" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel6" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel7" alignment="0" min="-2" pref="90" max="-2" attributes="0"/>
+ <Component id="jLabel8" alignment="0" min="-2" pref="90" max="-2" attributes="0"/>
+ <Component id="jLabel9" alignment="0" min="-2" pref="115" max="-2" attributes="0"/>
+ <Component id="jLabel10" alignment="0" min="-2" pref="80" max="-2" attributes="0"/>
+ <Component id="jLabel11" alignment="0" min="-2" pref="70" max="-2" attributes="0"/>
+ <Component id="jLabel12" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="-2" pref="22" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" max="-2" attributes="0">
+ <Component id="lblInfoObjectResource" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectReplicaNumber" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectSize" alignment="0" pref="370" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectCreatedDate" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectModifiedDate" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectOwner" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectOwnerZone" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectDataPath" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectResourceGroup" alignment="0" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectChecksum" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ <Group type="102" alignment="0" attributes="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel13" alignment="0" min="-2" pref="125" max="-2" attributes="0"/>
+ <Component id="jLabel14" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel15" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel16" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="lblInfoObjectReplicationStatus" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectStatus" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectType" max="32767" attributes="0"/>
+ <Component id="lblInfoObjectVersion" alignment="0" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ <EmptySpace pref="51" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace min="-2" pref="18" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectSize" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="lblInfoObjectCreatedDate" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel4" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel5" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectModifiedDate" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="lblInfoObjectOwner" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel6" alignment="1" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel7" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectOwnerZone" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="lblInfoObjectDataPath" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel8" alignment="1" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel9" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectResourceGroup" alignment="1" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="lblInfoObjectChecksum" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel10" alignment="1" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel11" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectResource" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel12" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectReplicaNumber" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel13" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectReplicationStatus" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel14" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectStatus" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel15" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectType" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel16" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="lblInfoObjectVersion" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace pref="281" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel3">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel4">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel4.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel5">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel5.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel6">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel6.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel7">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel7.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel8">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel8.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel9">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel9.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel10">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel10.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel11">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel11.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel12">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel12.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel13">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel13.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel14">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel14.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel15">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel15.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel16">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel16.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectSize">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectSize.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectCreatedDate">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectCreatedDate.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectModifiedDate">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectModifiedDate.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectOwner">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectOwner.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectOwnerZone">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectOwnerZone.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectDataPath">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectDataPath.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectResourceGroup">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectResourceGroup.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectChecksum">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectChecksum.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectResource">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectResource.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectReplicaNumber">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectReplicaNumber.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectReplicationStatus">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectReplicationStatus.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectStatus">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectStatus.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectType">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectType.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblInfoObjectVersion">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.lblInfoObjectVersion.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlTagsComments">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
+ <EtchetBorder/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel17" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel18" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace pref="66" max="32767" attributes="0"/>
+ <Group type="103" groupAlignment="0" max="-2" attributes="0">
+ <Component id="txtInfoTags" max="32767" attributes="0"/>
+ <Component id="jScrollPane1" pref="408" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace min="-2" pref="6" max="-2" attributes="0"/>
+ </Group>
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+ <Component id="btnUpdateTagsComments" min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace min="-2" pref="6" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel17" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="txtInfoTags" alignment="3" min="-2" pref="28" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel18" min="-2" max="-2" attributes="0"/>
+ <Component id="jScrollPane1" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Component id="btnUpdateTagsComments" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel17">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel17.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtInfoTags">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.txtInfoTags.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel18">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel18.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTextArea" name="textareaInfoComments">
+ <Properties>
+ <Property name="columns" type="int" value="20"/>
+ <Property name="rows" type="int" value="5"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Component class="javax.swing.JButton" name="btnUpdateTagsComments">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnUpdateTagsComments.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnUpdateTagsCommentsActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlMetadataTab">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
+ <JTabbedPaneConstraints tabName="Metadata">
+ <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.pnlMetadataTab.TabConstraints.tabTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </JTabbedPaneConstraints>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlMetadataTable">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane2">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTable" name="tableMetadata">
+ <Properties>
+ <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
+ <Table columnCount="3" rowCount="4">
+ <Column editable="false" title="Attribute" type="java.lang.String"/>
+ <Column editable="false" title="Value" type="java.lang.String"/>
+ <Column editable="false" title="Unit" type="java.lang.String"/>
+ </Table>
+ </Property>
+ <Property name="selectionModel" type="javax.swing.ListSelectionModel" editor="org.netbeans.modules.form.editors2.JTableSelectionModelEditor">
+ <JTableSelectionModel selectionMode="2"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel5">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="2" left="2" right="2" top="2"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[568, 44]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel6">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 40]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <EmptySpace min="0" pref="100" max="32767" attributes="0"/>
+ <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace min="-2" pref="8" max="-2" attributes="0"/>
+ <Component id="btnMetadataDelete" min="-2" max="-2" attributes="0"/>
+ <EmptySpace pref="8" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <EmptySpace min="0" pref="40" max="32767" attributes="0"/>
+ <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace min="-2" pref="5" max="-2" attributes="0"/>
+ <Component id="btnMetadataDelete" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnMetadataDelete">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnMetadataDelete.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="actionCommand" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnMetadataDelete.actionCommand" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="enabled" type="boolean" value="false"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMetadataDeleteActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlMetaDataEdit">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
+ <EtchetBorder/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[527, 200]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" attributes="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="jLabel28" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel29" alignment="0" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabel30" alignment="0" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace type="unrelated" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Component id="txtMetadataValue" alignment="0" pref="480" max="32767" attributes="0"/>
+ <Component id="txtMetadataAttribute" alignment="1" max="32767" attributes="0"/>
+ <Component id="txtMetadataUnit" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
+ <Component id="btnMetadataClear" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="btnMetadataCreate" min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace pref="18" max="32767" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel28" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="txtMetadataAttribute" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="-2" pref="18" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel29" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="txtMetadataValue" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="-2" pref="18" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jLabel30" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="txtMetadataUnit" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace min="-2" pref="23" max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="btnMetadataClear" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="btnMetadataCreate" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel28">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel28.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel29">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel29.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel30">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.jLabel30.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMetadataClear">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnMetadataClear.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMetadataClearActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMetadataCreate">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnMetadataCreate.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="enabled" type="boolean" value="false"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMetadataCreateActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtMetadataAttribute">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.txtMetadataAttribute.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtMetadataValue">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.txtMetadataValue.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtMetadataUnit">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.txtMetadataUnit.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlPermissionsTab">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
+ <JTabbedPaneConstraints tabName="Permissions">
+ <Property name="tabTitle" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.pnlPermissionsTab.TabConstraints.tabTitle" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </JTabbedPaneConstraints>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlPermissionsTable">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane3">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTable" name="tablePermissions">
+ <Properties>
+ <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
+ <Table columnCount="2" rowCount="4">
+ <Column editable="false" title="User Name" type="java.lang.String">
+ <Data value=""/>
+ <Data value="null"/>
+ <Data value="null"/>
+ <Data value="null"/>
+ </Column>
+ <Column editable="true" title="Share Permission" type="java.lang.Object"/>
+ </Table>
+ </Property>
+ <Property name="selectionModel" type="javax.swing.ListSelectionModel" editor="org.netbeans.modules.form.editors2.JTableSelectionModelEditor">
+ <JTableSelectionModel selectionMode="2"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel7">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="2" left="2" right="2" top="2"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[568, 44]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel8">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 44]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace pref="19" max="32767" attributes="0"/>
+ <Component id="btnPermissionsSave" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="32767" attributes="0"/>
+ <Component id="btnPermissionsSave" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnPermissionsSave">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnPermissionsSave.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="actionCommand" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnPermissionsSave.actionCommand" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="enabled" type="boolean" value="false"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnPermissionsSaveActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel9">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 25]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="West"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel16">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="West"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout">
+ <Property name="horizontalGap" type="int" value="1"/>
+ <Property name="verticalGap" type="int" value="1"/>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnAddSharePermissions">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnAddSharePermissions.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[22, 24]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnAddSharePermissionsActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnDeleteSharePermissions">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnDeleteSharePermissions.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="enabled" type="boolean" value="false"/>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[22, 24]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnDeleteSharePermissionsActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlCloseBtn">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[589, 35]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Last"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel3">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 40]"/>
+ </Property>
+ <Property name="size" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[200, 100]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="West"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <EmptySpace min="0" pref="100" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <EmptySpace min="0" pref="35" max="32767" attributes="0"/>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel4">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace pref="417" max="32767" attributes="0"/>
+ <Component id="btnRefresh" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="btnClose" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace min="0" pref="6" max="32767" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="btnClose" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="btnRefresh" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnClose">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnClose.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCloseActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnRefresh">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="IRODSInfoDialog.btnRefresh.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnRefreshActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.java
new file mode 100644
index 0000000..745c861
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.java
@@ -0,0 +1,1824 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.irods.jargon.idrop.desktop.systraygui;
+
+import java.awt.CardLayout;
+import java.awt.Cursor;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.FileNotFoundException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.swing.DefaultCellEditor;
+import javax.swing.JOptionPane;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.TableColumn;
+import org.irods.jargon.core.connection.IRODSAccount;
+import org.irods.jargon.core.exception.JargonException;
+import org.irods.jargon.core.protovalues.FilePermissionEnum;
+import org.irods.jargon.core.pub.CollectionAO;
+import org.irods.jargon.core.pub.CollectionAndDataObjectListAndSearchAO;
+import org.irods.jargon.core.pub.CollectionAndDataObjectListAndSearchAOImpl;
+import org.irods.jargon.core.pub.DataObjectAO;
+import org.irods.jargon.core.pub.IRODSFileSystem;
+import org.irods.jargon.core.pub.UserAO;
+import org.irods.jargon.core.pub.domain.AvuData;
+import org.irods.jargon.core.pub.domain.Collection;
+import org.irods.jargon.core.pub.domain.DataObject;
+import org.irods.jargon.core.pub.domain.User;
+import org.irods.jargon.core.pub.domain.UserFilePermission;
+import org.irods.jargon.core.query.CollectionAndDataObjectListingEntry;
+import org.irods.jargon.idrop.desktop.systraygui.services.IRODSFileService;
+import org.irods.jargon.idrop.desktop.systraygui.utils.FieldFormatHelper;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSNode;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSOutlineModel;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSTree;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.MetadataTableModel;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.PermissionsTableModel;
+import org.irods.jargon.idrop.exceptions.IdropException;
+import org.irods.jargon.usertagging.FreeTaggingService;
+import org.irods.jargon.usertagging.IRODSTaggingService;
+import org.irods.jargon.usertagging.TaggingServiceFactory;
+import org.irods.jargon.usertagging.TaggingServiceFactoryImpl;
+import org.irods.jargon.usertagging.domain.IRODSTagValue;
+import org.openide.util.Exceptions;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author lisa
+ */
+public class IRODSInfoDialog extends javax.swing.JDialog implements
+ ListSelectionListener, DocumentListener, ActionListener {
+
+ private final iDrop idropGUI;
+ private final IRODSAccount irodsAccount;
+ private String selectedObjectFullPath;
+ private String selectedObjectName;
+ private String selectedObjectParent;
+ private final IRODSFileSystem irodsFileSystem;
+ private final IRODSTree irodsTree;
+ private IRODSInfoDialog dialog;
+ public static org.slf4j.Logger log = LoggerFactory.getLogger(IRODSTree.class);
+ //private final String fileName;
+
+ /**
+ * Creates new form IRODSInfoDialog
+ */
+// public IRODSInfoDialog(java.awt.Frame parent, boolean modal) {
+// super(parent, modal);
+// initComponents();
+// }
+ public IRODSInfoDialog(final iDrop parent, final boolean modal,
+ final IRODSTree irodsTree) {
+
+ super(parent, modal);
+ this.idropGUI = parent;
+ this.irodsAccount = idropGUI.getiDropCore().getIrodsAccount();
+ this.irodsFileSystem = idropGUI.getiDropCore().getIrodsFileSystem();
+ this.irodsTree = irodsTree;
+ initSelectedObjectName();
+ initComponents();
+
+ selectInfoCard();
+
+ initializeFileInfo();
+ initMetadataInfo();
+ initPermissionInfo();
+
+ // for now hide clear button
+ btnMetadataClear.setVisible(false);
+ }
+
+ private void initSelectedObjectName() {
+
+ IRODSFileService irodsFS = null;
+
+ try {
+ irodsFS = new IRODSFileService(idropGUI.getiDropCore().getIrodsAccount(),
+ idropGUI.getiDropCore().getIrodsFileSystem());
+ } catch (Exception ex) {
+ log.error("cannot create irods file service");
+ return;
+ }
+
+ IRODSOutlineModel irodsFileSystemModel = (IRODSOutlineModel) irodsTree.getModel();
+ ListSelectionModel selectionModel = irodsTree.getSelectionModel();
+ int idxStart = selectionModel.getMinSelectionIndex();
+
+ IRODSNode selectedNode = (IRODSNode) irodsFileSystemModel.getValueAt(idxStart, 0);
+ selectedObjectFullPath = selectedNode.getFullPath();
+ String objectPath[] = selectedObjectFullPath.split("/");
+ selectedObjectName = objectPath[objectPath.length - 1];
+ IRODSNode pNode = (IRODSNode) selectedNode.getParent();
+ selectedObjectParent = pNode.getFullPath();
+ }
+
+ private void selectInfoCard() {
+
+ CardLayout cl = (CardLayout) (pnlInfoCards.getLayout());
+ if (isCollection()) {
+ lblObjectCollection.setText("Collection:");
+ cl.show(pnlInfoCards, "cardCollectionInfo");
+ } else {
+ lblObjectCollection.setText("Object:");
+ cl.show(pnlInfoCards, "cardObjectInfo");
+ }
+
+ // also populate header
+ if (selectedObjectName != null) {
+ lblInfoObjectName.setText(selectedObjectName);
+ }
+ if (selectedObjectParent != null) {
+ lblInfoObjectParent.setText(selectedObjectParent);
+ }
+ }
+
+ private void initializeFileInfo() {
+ this.dialog = this;
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ try {
+
+ TaggingServiceFactory taggingServiceFactory = new TaggingServiceFactoryImpl(irodsFileSystem.getIRODSAccessObjectFactory());
+ FreeTaggingService freeTaggingService = taggingServiceFactory.instanceFreeTaggingService(irodsAccount);
+ IRODSTaggingService irodsTaggingService = taggingServiceFactory.instanceIrodsTaggingService(irodsAccount);
+
+ if (isCollection()) {
+
+ CollectionAO collectionAO = irodsFileSystem.getIRODSAccessObjectFactory().getCollectionAO(irodsAccount);
+ Collection collection = collectionAO.findByAbsolutePath(selectedObjectFullPath);
+
+ if (collection.getCreatedAt().toString() != null) {
+ lblInfoCollectionCreatedDate.setText(collection.getCreatedAt().toString());
+ } else {
+ lblInfoCollectionCreatedDate.setText("");
+ }
+
+ if (collection.getModifiedAt().toString() != null) {
+ lblInfoCollectionModifiedDate.setText(collection.getModifiedAt().toString());
+ } else {
+ lblInfoCollectionModifiedDate.setText("");
+ }
+
+ if (collection.getCollectionOwnerName() != null) {
+ lblInfoCollectionOwner.setText(collection.getCollectionOwnerName());
+ } else {
+ lblInfoCollectionOwner.setText("");
+ }
+
+ if (collection.getComments() != null) {
+ lblInfoCollectionDescription.setText(collection.getComments());
+ } else {
+ lblInfoCollectionDescription.setText("");
+ }
+
+ if (collection.getSpecColType() != null) {
+ lblInfoCollectionType.setText(collection.getSpecColType().name());
+ } else {
+ lblInfoCollectionType.setText("");
+ }
+
+ if (collection.getCollectionOwnerZone() != null) {
+ lblInfoCollectionOwnerZone.setText(collection.getCollectionOwnerZone());
+ } else {
+ lblInfoCollectionOwnerZone.setText("");
+ }
+
+ if (collection.getObjectPath() != null) {
+ lblInfoCollectionObjectPath.setText(collection.getObjectPath());
+ } else {
+ lblInfoCollectionObjectPath.setText("");
+ }
+
+ if (collection.getInfo1() != null) {
+ lblInfoCollectionInfo1.setText(collection.getInfo1());
+ } else {
+ lblInfoCollectionInfo1.setText("");
+ }
+
+ if (collection.getInfo2() != null) {
+ lblInfoCollectionInfo2.setText(collection.getInfo2());
+ } else {
+ lblInfoCollectionInfo2.setText("");
+ }
+
+ // now populate tags and comments for collection
+ txtInfoTags.setText(freeTaggingService.getTagsForCollectionInFreeTagForm(
+ selectedObjectFullPath).getSpaceDelimitedTagsForDomain());
+ IRODSTagValue irodsTagValue = irodsTaggingService.getDescriptionOnCollectionForLoggedInUser(
+ selectedObjectFullPath);
+ if (irodsTagValue != null) {
+ textareaInfoComments.setText(irodsTagValue.getTagData());
+ }
+
+ }
+ else {
+
+ DataObjectAO dataObjectAO = irodsFileSystem.getIRODSAccessObjectFactory().getDataObjectAO(irodsAccount);
+ DataObject dataObject = dataObjectAO.findByAbsolutePath(selectedObjectFullPath);
+
+ if (dataObject.getDataSize() >= 0) {
+ lblInfoObjectSize.setText(FieldFormatHelper.formatFileLength(dataObject.getDataSize()));
+ } else {
+ lblInfoObjectSize.setText("");
+ }
+
+ if (dataObject.getCreatedAt().toString() != null) {
+ lblInfoObjectCreatedDate.setText(dataObject.getCreatedAt().toString());
+ } else {
+ lblInfoObjectCreatedDate.setText("");
+ }
+
+ if (dataObject.getUpdatedAt().toString() != null) {
+ lblInfoObjectModifiedDate.setText(dataObject.getUpdatedAt().toString());
+ } else {
+ lblInfoObjectCreatedDate.setText("");
+ }
+
+ if (dataObject.getDataOwnerName() != null) {
+ lblInfoObjectOwner.setText(dataObject.getDataOwnerName());
+ } else {
+ lblInfoObjectOwner.setText("");
+ }
+
+ if (dataObject.getDataOwnerZone() != null) {
+ lblInfoObjectOwnerZone.setText(dataObject.getDataOwnerZone());
+ } else {
+ lblInfoObjectOwnerZone.setText("");
+ }
+
+ if (dataObject.getDataPath() != null) {
+ lblInfoObjectDataPath.setText(dataObject.getDataPath());
+ } else {
+ lblInfoObjectDataPath.setText("");
+ }
+
+ if (dataObject.getResourceGroupName() != null) {
+ lblInfoObjectResourceGroup.setText(dataObject.getResourceGroupName());
+ } else {
+ lblInfoObjectResourceGroup.setText("");
+ }
+
+ if (dataObject.getChecksum() != null) {
+ lblInfoObjectChecksum.setText(dataObject.getChecksum());
+ } else {
+ lblInfoObjectChecksum.setText("");
+ }
+
+ if (dataObject.getResourceName() != null) {
+ lblInfoObjectResource.setText(dataObject.getResourceName());
+ } else {
+ lblInfoObjectResource.setText("");
+ }
+
+ if (dataObject.getDataReplicationNumber() >= 0) {
+ lblInfoObjectReplicaNumber.setText(Integer.toString(dataObject.getDataReplicationNumber()));
+ } else {
+ lblInfoObjectReplicaNumber.setText("");
+ }
+
+ if (dataObject.getReplicationStatus() != null) {
+ lblInfoObjectReplicationStatus.setText(dataObject.getReplicationStatus());
+ } else {
+ lblInfoObjectReplicationStatus.setText("");
+ }
+
+ if (dataObject.getDataStatus() != null) {
+ lblInfoObjectStatus.setText(dataObject.getDataStatus());
+ } else {
+ lblInfoObjectStatus.setText("");
+ }
+
+ if (dataObject.getDataTypeName() != null) {
+ lblInfoObjectType.setText(dataObject.getDataTypeName());
+ } else {
+ lblInfoObjectType.setText("");
+ }
+
+ if (dataObject.getDataVersion() >= 0) {
+ lblInfoObjectVersion.setText(Integer.toString(dataObject.getDataVersion()));
+ } else {
+ lblInfoObjectVersion.setText("");
+ }
+
+ // now populate tags and comments for data object
+ txtInfoTags.setText(freeTaggingService.getTagsForDataObjectInFreeTagForm(
+ selectedObjectFullPath).getSpaceDelimitedTagsForDomain());
+ IRODSTagValue irodsTagValue = irodsTaggingService.getDescriptionOnDataObjectForLoggedInUser(
+ selectedObjectFullPath);
+ if (irodsTagValue != null) {
+ textareaInfoComments.setText(irodsTagValue.getTagData());
+ }
+
+ }
+
+ } catch (FileNotFoundException ex) {
+ Exceptions.printStackTrace(ex);
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+
+ dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+ });
+ }
+
+ private void initMetadataInfo() {
+ this.dialog = this;
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ try {
+ // set up metadata table and table model
+ IRODSFileService irodsFileService = new IRODSFileService(
+ irodsAccount, irodsFileSystem);
+ MetadataTableModel metadataTableModel;
+
+ if (isCollection()) {
+ metadataTableModel = new MetadataTableModel(
+ irodsFileService.getMetadataForCollection(selectedObjectFullPath));
+ } else {
+ metadataTableModel = new MetadataTableModel(
+ irodsFileService.getMetadataForDataObject(
+ selectedObjectParent, selectedObjectName));
+ }
+ tableMetadata.setModel(metadataTableModel);
+ tableMetadata.getSelectionModel().addListSelectionListener(dialog);
+ tableMetadata.validate();
+
+ // add document listener to metadata text fields
+ txtMetadataAttribute.getDocument().addDocumentListener(dialog);
+ txtMetadataValue.getDocument().addDocumentListener(dialog);
+ txtMetadataUnit.getDocument().addDocumentListener(dialog);
+ } catch (IdropException ex) {
+ Logger.getLogger(MetadataViewDialog.class.getName()).log(
+ Level.SEVERE, null, ex);
+ idropGUI.showIdropException(ex);
+ }
+
+ dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+ });
+ }
+
+ private void initPermissionInfo() {
+ this.dialog = this;
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+
+ // set up combobox lists
+ List<User> users = null;
+ dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+
+ // this list of ACLs contains permission that are not suppoted?
+ //List<FilePermissionEnum> permissions = FilePermissionEnum.listAllValues();
+ //for (FilePermissionEnum permission: permissions) {
+ //cbPermissionsPermission.addItem(permission.name());
+ //}
+ // will just do my own for now
+ //cbPermissionsPermission.addItem("NONE");
+ javax.swing.JComboBox tableCombo = new javax.swing.JComboBox();
+ tableCombo.addItem("READ");
+ tableCombo.addItem("WRITE");
+ tableCombo.addItem("OWN");
+
+ // set up permission table and table model
+ PermissionsTableModel permissionsTableModel = null;
+ try {
+ if (isCollection()) {
+ CollectionAO collectionAO = irodsFileSystem.getIRODSAccessObjectFactory().getCollectionAO(irodsAccount);
+ permissionsTableModel = new PermissionsTableModel(
+ collectionAO.listPermissionsForCollection(selectedObjectFullPath));
+ } else {
+ DataObjectAO dataObjectAO = irodsFileSystem.getIRODSAccessObjectFactory().getDataObjectAO(irodsAccount);
+ permissionsTableModel = new PermissionsTableModel(
+ dataObjectAO.listPermissionsForDataObject(selectedObjectFullPath));
+ }
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+
+ tablePermissions.setModel(permissionsTableModel);
+ tablePermissions.getSelectionModel().addListSelectionListener(dialog);
+ TableColumn permissionColumn = tablePermissions.getColumnModel().getColumn(1);
+ permissionColumn.setCellEditor(new DefaultCellEditor(tableCombo));
+ permissionsTableModel.resetOriginalPermissionList();
+ tablePermissions.validate();
+
+ dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+ });
+ }
+
+ private boolean isCollection() {
+
+ boolean state = false;
+ CollectionAndDataObjectListingEntry entry = null;
+
+ //perhaps should throw exception if these vital member variables are null
+ if ((selectedObjectFullPath != null)
+ && (irodsFileSystem != null)
+ && (irodsAccount != null)) {
+ CollectionAndDataObjectListAndSearchAOImpl collectionAndDataObjectListAndSearchAOImpl;
+ try {
+ collectionAndDataObjectListAndSearchAOImpl = (CollectionAndDataObjectListAndSearchAOImpl) irodsFileSystem.getIRODSAccessObjectFactory().getCollectionAndDataObjectListAndSearchAO(irodsAccount);
+ entry =
+ collectionAndDataObjectListAndSearchAOImpl.getCollectionAndDataObjectListingEntryAtGivenAbsolutePath(selectedObjectFullPath);
+ } catch (JargonException ex) {
+ // TODO: respond correctly here
+ Exceptions.printStackTrace(ex);
+ }
+
+ state = entry.isCollection();
+ }
+
+ return state;
+ }
+
+ private void updateMetadataCreateBtnStatus() {
+ // create button should only be enabled when there is no tableMetadata
+ // selection and all text fields are populated
+ btnMetadataCreate.setEnabled(
+ txtMetadataAttribute.getText().length() > 0 &&
+ txtMetadataValue.getText().length() > 0 &&
+ txtMetadataUnit.getText().length() > 0);
+ }
+
+ private void updateMetadataDeleteBtnStatus(int selectedRowCount) {
+ // delete button should only be enabled when there is a tableMetadata selection
+ // add all text fields are populated
+ btnMetadataDelete.setEnabled(selectedRowCount > 0);
+ }
+
+ private void updatePermissionsDeleteBtnStatus(int selectedRowCount) {
+ // delete button should only be enabled when there is a tableMetadata or
+ // tablePermissions selection
+ btnDeleteSharePermissions.setEnabled(selectedRowCount > 0);
+ }
+
+ // ListSelectionListener methods
+ @Override
+ public void valueChanged(ListSelectionEvent lse) {
+ int selectedRowCount = 0;
+
+ if (!lse.getValueIsAdjusting()) {
+ // determine which table is selected
+ // Metadata Table?
+ if (lse.getSource() == tableMetadata.getSelectionModel()) {
+ selectedRowCount = tableMetadata.getSelectedRowCount();
+ updateMetadataDeleteBtnStatus(selectedRowCount);
+ }
+ else { // Permissions Table
+ selectedRowCount = tablePermissions.getSelectedRowCount();
+ updatePermissionsDeleteBtnStatus(selectedRowCount);
+ }
+ }
+ }
+ // end ListSelectionListener methods
+
+ // DocumentListener Methods
+ @Override
+ public void insertUpdate(DocumentEvent de) {
+ updateMetadataCreateBtnStatus();
+ }
+
+ @Override
+ public void removeUpdate(DocumentEvent de) {
+ updateMetadataCreateBtnStatus();
+ }
+
+ @Override
+ public void changedUpdate(DocumentEvent de) {
+ updateMetadataCreateBtnStatus();
+ }
+ // end DocumentListener Methods
+
+ // ActionListener Methods
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+// if (ae.getSource() == cbPermissionsPermission ||
+// ae.getSource() == cbPermissionsUserName) {
+// updatePermissonsCreateBtnStatus();
+// }
+ }
+ // end ActionListener Methods
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanel2 = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ pnlSelectedObject = new javax.swing.JPanel();
+ lblObjectCollection = new javax.swing.JLabel();
+ jLabel2 = new javax.swing.JLabel();
+ lblInfoObjectName = new javax.swing.JLabel();
+ lblInfoObjectParent = new javax.swing.JLabel();
+ tabbedpanelMain = new javax.swing.JTabbedPane();
+ pnlInfoTab = new javax.swing.JPanel();
+ pnlInfoCards = new javax.swing.JPanel();
+ pnlCollectionInfo = new javax.swing.JPanel();
+ jLabel19 = new javax.swing.JLabel();
+ jLabel20 = new javax.swing.JLabel();
+ jLabel21 = new javax.swing.JLabel();
+ jLabel22 = new javax.swing.JLabel();
+ jLabel23 = new javax.swing.JLabel();
+ jLabel24 = new javax.swing.JLabel();
+ jLabel25 = new javax.swing.JLabel();
+ jLabel26 = new javax.swing.JLabel();
+ jLabel27 = new javax.swing.JLabel();
+ lblInfoCollectionCreatedDate = new javax.swing.JLabel();
+ lblInfoCollectionModifiedDate = new javax.swing.JLabel();
+ lblInfoCollectionOwner = new javax.swing.JLabel();
+ lblInfoCollectionOwnerZone = new javax.swing.JLabel();
+ lblInfoCollectionType = new javax.swing.JLabel();
+ lblInfoCollectionObjectPath = new javax.swing.JLabel();
+ lblInfoCollectionDescription = new javax.swing.JLabel();
+ lblInfoCollectionInfo1 = new javax.swing.JLabel();
+ lblInfoCollectionInfo2 = new javax.swing.JLabel();
+ pnlObjectInfo = new javax.swing.JPanel();
+ jLabel3 = new javax.swing.JLabel();
+ jLabel4 = new javax.swing.JLabel();
+ jLabel5 = new javax.swing.JLabel();
+ jLabel6 = new javax.swing.JLabel();
+ jLabel7 = new javax.swing.JLabel();
+ jLabel8 = new javax.swing.JLabel();
+ jLabel9 = new javax.swing.JLabel();
+ jLabel10 = new javax.swing.JLabel();
+ jLabel11 = new javax.swing.JLabel();
+ jLabel12 = new javax.swing.JLabel();
+ jLabel13 = new javax.swing.JLabel();
+ jLabel14 = new javax.swing.JLabel();
+ jLabel15 = new javax.swing.JLabel();
+ jLabel16 = new javax.swing.JLabel();
+ lblInfoObjectSize = new javax.swing.JLabel();
+ lblInfoObjectCreatedDate = new javax.swing.JLabel();
+ lblInfoObjectModifiedDate = new javax.swing.JLabel();
+ lblInfoObjectOwner = new javax.swing.JLabel();
+ lblInfoObjectOwnerZone = new javax.swing.JLabel();
+ lblInfoObjectDataPath = new javax.swing.JLabel();
+ lblInfoObjectResourceGroup = new javax.swing.JLabel();
+ lblInfoObjectChecksum = new javax.swing.JLabel();
+ lblInfoObjectResource = new javax.swing.JLabel();
+ lblInfoObjectReplicaNumber = new javax.swing.JLabel();
+ lblInfoObjectReplicationStatus = new javax.swing.JLabel();
+ lblInfoObjectStatus = new javax.swing.JLabel();
+ lblInfoObjectType = new javax.swing.JLabel();
+ lblInfoObjectVersion = new javax.swing.JLabel();
+ pnlTagsComments = new javax.swing.JPanel();
+ jLabel17 = new javax.swing.JLabel();
+ txtInfoTags = new javax.swing.JTextField();
+ jLabel18 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ textareaInfoComments = new javax.swing.JTextArea();
+ btnUpdateTagsComments = new javax.swing.JButton();
+ pnlMetadataTab = new javax.swing.JPanel();
+ pnlMetadataTable = new javax.swing.JPanel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ tableMetadata = new javax.swing.JTable();
+ jPanel5 = new javax.swing.JPanel();
+ jPanel6 = new javax.swing.JPanel();
+ btnMetadataDelete = new javax.swing.JButton();
+ pnlMetaDataEdit = new javax.swing.JPanel();
+ jLabel28 = new javax.swing.JLabel();
+ jLabel29 = new javax.swing.JLabel();
+ jLabel30 = new javax.swing.JLabel();
+ btnMetadataClear = new javax.swing.JButton();
+ btnMetadataCreate = new javax.swing.JButton();
+ txtMetadataAttribute = new javax.swing.JTextField();
+ txtMetadataValue = new javax.swing.JTextField();
+ txtMetadataUnit = new javax.swing.JTextField();
+ pnlPermissionsTab = new javax.swing.JPanel();
+ pnlPermissionsTable = new javax.swing.JPanel();
+ jScrollPane3 = new javax.swing.JScrollPane();
+ tablePermissions = new javax.swing.JTable();
+ jPanel7 = new javax.swing.JPanel();
+ jPanel8 = new javax.swing.JPanel();
+ btnPermissionsSave = new javax.swing.JButton();
+ jPanel9 = new javax.swing.JPanel();
+ jPanel16 = new javax.swing.JPanel();
+ btnAddSharePermissions = new javax.swing.JButton();
+ btnDeleteSharePermissions = new javax.swing.JButton();
+ pnlCloseBtn = new javax.swing.JPanel();
+ jPanel3 = new javax.swing.JPanel();
+ jPanel4 = new javax.swing.JPanel();
+ btnClose = new javax.swing.JButton();
+ btnRefresh = new javax.swing.JButton();
+
+ org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(0, 100, Short.MAX_VALUE)
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(0, 100, Short.MAX_VALUE)
+ );
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setPreferredSize(new java.awt.Dimension(560, 720));
+
+ jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(14, 10, 10, 10));
+ jPanel1.setPreferredSize(new java.awt.Dimension(600, 750));
+ jPanel1.setLayout(new java.awt.BorderLayout());
+
+ pnlSelectedObject.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 4, 1, 4));
+ pnlSelectedObject.setPreferredSize(new java.awt.Dimension(528, 70));
+
+ lblObjectCollection.setFont(new java.awt.Font("Lucida Grande", 0, 14)); // NOI18N
+ lblObjectCollection.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblObjectCollection.text")); // NOI18N
+
+ jLabel2.setFont(new java.awt.Font("Lucida Grande", 0, 14)); // NOI18N
+ jLabel2.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel2.text")); // NOI18N
+
+ lblInfoObjectName.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectName.text")); // NOI18N
+
+ lblInfoObjectParent.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectParent.text")); // NOI18N
+
+ org.jdesktop.layout.GroupLayout pnlSelectedObjectLayout = new org.jdesktop.layout.GroupLayout(pnlSelectedObject);
+ pnlSelectedObject.setLayout(pnlSelectedObjectLayout);
+ pnlSelectedObjectLayout.setHorizontalGroup(
+ pnlSelectedObjectLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlSelectedObjectLayout.createSequentialGroup()
+ .addContainerGap()
+ .add(pnlSelectedObjectLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+ .add(lblObjectCollection, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
+ .add(jLabel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlSelectedObjectLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+ .add(lblInfoObjectName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 362, Short.MAX_VALUE)
+ .add(lblInfoObjectParent, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap(67, Short.MAX_VALUE))
+ );
+ pnlSelectedObjectLayout.setVerticalGroup(
+ pnlSelectedObjectLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlSelectedObjectLayout.createSequentialGroup()
+ .addContainerGap()
+ .add(pnlSelectedObjectLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(lblObjectCollection)
+ .add(lblInfoObjectName))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlSelectedObjectLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(lblInfoObjectParent))
+ .addContainerGap(19, Short.MAX_VALUE))
+ );
+
+ jPanel1.add(pnlSelectedObject, java.awt.BorderLayout.PAGE_START);
+
+ tabbedpanelMain.setPreferredSize(new java.awt.Dimension(600, 867));
+
+ pnlInfoTab.setLayout(new java.awt.BorderLayout());
+
+ pnlInfoCards.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ pnlInfoCards.setPreferredSize(new java.awt.Dimension(555, 640));
+ pnlInfoCards.setLayout(new java.awt.CardLayout());
+
+ pnlCollectionInfo.setPreferredSize(new java.awt.Dimension(515, 500));
+
+ jLabel19.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel19.text")); // NOI18N
+
+ jLabel20.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel20.text")); // NOI18N
+
+ jLabel21.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel21.text")); // NOI18N
+
+ jLabel22.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel22.text")); // NOI18N
+
+ jLabel23.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel23.text")); // NOI18N
+
+ jLabel24.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel24.text")); // NOI18N
+
+ jLabel25.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel25.text")); // NOI18N
+
+ jLabel26.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel26.text")); // NOI18N
+
+ jLabel27.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel27.text")); // NOI18N
+
+ lblInfoCollectionCreatedDate.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionCreatedDate.text")); // NOI18N
+
+ lblInfoCollectionModifiedDate.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionModifiedDate.text")); // NOI18N
+
+ lblInfoCollectionOwner.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionOwner.text")); // NOI18N
+
+ lblInfoCollectionOwnerZone.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionOwnerZone.text")); // NOI18N
+
+ lblInfoCollectionType.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionType.text")); // NOI18N
+
+ lblInfoCollectionObjectPath.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionObjectPath.text")); // NOI18N
+
+ lblInfoCollectionDescription.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionDescription.text")); // NOI18N
+
+ lblInfoCollectionInfo1.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionInfo1.text")); // NOI18N
+
+ lblInfoCollectionInfo2.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoCollectionInfo2.text")); // NOI18N
+
+ org.jdesktop.layout.GroupLayout pnlCollectionInfoLayout = new org.jdesktop.layout.GroupLayout(pnlCollectionInfo);
+ pnlCollectionInfo.setLayout(pnlCollectionInfoLayout);
+ pnlCollectionInfoLayout.setHorizontalGroup(
+ pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlCollectionInfoLayout.createSequentialGroup()
+ .addContainerGap()
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
+ .add(org.jdesktop.layout.GroupLayout.LEADING, pnlCollectionInfoLayout.createSequentialGroup()
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel22)
+ .add(jLabel23)
+ .add(jLabel24)
+ .add(jLabel25)
+ .add(jLabel26)
+ .add(jLabel27))
+ .add(24, 24, 24)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(lblInfoCollectionOwnerZone, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
+ .add(lblInfoCollectionType, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoCollectionObjectPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoCollectionDescription, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoCollectionInfo1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoCollectionInfo2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ .add(org.jdesktop.layout.GroupLayout.LEADING, pnlCollectionInfoLayout.createSequentialGroup()
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel19)
+ .add(jLabel20)
+ .add(jLabel21))
+ .add(47, 47, 47)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+ .add(lblInfoCollectionCreatedDate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
+ .add(lblInfoCollectionModifiedDate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoCollectionOwner, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+ .addContainerGap())
+ );
+ pnlCollectionInfoLayout.setVerticalGroup(
+ pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlCollectionInfoLayout.createSequentialGroup()
+ .add(24, 24, 24)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel19)
+ .add(lblInfoCollectionCreatedDate))
+ .add(18, 18, 18)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel20)
+ .add(lblInfoCollectionModifiedDate))
+ .add(18, 18, 18)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel21)
+ .add(lblInfoCollectionOwner))
+ .add(18, 18, 18)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel22)
+ .add(lblInfoCollectionOwnerZone))
+ .add(18, 18, 18)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel23)
+ .add(lblInfoCollectionType))
+ .add(18, 18, 18)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel24)
+ .add(lblInfoCollectionObjectPath))
+ .add(18, 18, 18)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel25)
+ .add(lblInfoCollectionDescription))
+ .add(18, 18, 18)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel26)
+ .add(lblInfoCollectionInfo1))
+ .add(18, 18, 18)
+ .add(pnlCollectionInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel27)
+ .add(lblInfoCollectionInfo2))
+ .addContainerGap(289, Short.MAX_VALUE))
+ );
+
+ pnlInfoCards.add(pnlCollectionInfo, "cardCollectionInfo");
+
+ pnlObjectInfo.setPreferredSize(new java.awt.Dimension(550, 530));
+
+ jLabel3.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel3.text")); // NOI18N
+
+ jLabel4.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel4.text")); // NOI18N
+
+ jLabel5.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel5.text")); // NOI18N
+
+ jLabel6.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel6.text")); // NOI18N
+
+ jLabel7.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel7.text")); // NOI18N
+
+ jLabel8.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel8.text")); // NOI18N
+
+ jLabel9.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel9.text")); // NOI18N
+
+ jLabel10.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel10.text")); // NOI18N
+
+ jLabel11.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel11.text")); // NOI18N
+
+ jLabel12.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel12.text")); // NOI18N
+
+ jLabel13.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel13.text")); // NOI18N
+
+ jLabel14.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel14.text")); // NOI18N
+
+ jLabel15.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel15.text")); // NOI18N
+
+ jLabel16.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel16.text")); // NOI18N
+
+ lblInfoObjectSize.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectSize.text")); // NOI18N
+
+ lblInfoObjectCreatedDate.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectCreatedDate.text")); // NOI18N
+
+ lblInfoObjectModifiedDate.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectModifiedDate.text")); // NOI18N
+
+ lblInfoObjectOwner.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectOwner.text")); // NOI18N
+
+ lblInfoObjectOwnerZone.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectOwnerZone.text")); // NOI18N
+
+ lblInfoObjectDataPath.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectDataPath.text")); // NOI18N
+
+ lblInfoObjectResourceGroup.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectResourceGroup.text")); // NOI18N
+
+ lblInfoObjectChecksum.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectChecksum.text")); // NOI18N
+
+ lblInfoObjectResource.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectResource.text")); // NOI18N
+
+ lblInfoObjectReplicaNumber.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectReplicaNumber.text")); // NOI18N
+
+ lblInfoObjectReplicationStatus.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectReplicationStatus.text")); // NOI18N
+
+ lblInfoObjectStatus.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectStatus.text")); // NOI18N
+
+ lblInfoObjectType.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectType.text")); // NOI18N
+
+ lblInfoObjectVersion.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.lblInfoObjectVersion.text")); // NOI18N
+
+ org.jdesktop.layout.GroupLayout pnlObjectInfoLayout = new org.jdesktop.layout.GroupLayout(pnlObjectInfo);
+ pnlObjectInfo.setLayout(pnlObjectInfoLayout);
+ pnlObjectInfoLayout.setHorizontalGroup(
+ pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlObjectInfoLayout.createSequentialGroup()
+ .addContainerGap()
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+ .add(pnlObjectInfoLayout.createSequentialGroup()
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 70, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(jLabel4)
+ .add(jLabel5)
+ .add(jLabel6)
+ .add(jLabel7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(jLabel8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(jLabel9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 115, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(jLabel10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 80, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(jLabel11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 70, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(jLabel12))
+ .add(22, 22, 22)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+ .add(lblInfoObjectResource, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectReplicaNumber, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectSize, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
+ .add(lblInfoObjectCreatedDate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectModifiedDate, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectOwner, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectOwnerZone, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectDataPath, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectResourceGroup, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectChecksum, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ .add(pnlObjectInfoLayout.createSequentialGroup()
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel13, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 125, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(jLabel14)
+ .add(jLabel15)
+ .add(jLabel16))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(lblInfoObjectReplicationStatus, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectStatus, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectType, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(lblInfoObjectVersion, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+ .addContainerGap(51, Short.MAX_VALUE))
+ );
+ pnlObjectInfoLayout.setVerticalGroup(
+ pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlObjectInfoLayout.createSequentialGroup()
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlObjectInfoLayout.createSequentialGroup()
+ .add(18, 18, 18)
+ .add(lblInfoObjectSize))
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, pnlObjectInfoLayout.createSequentialGroup()
+ .addContainerGap()
+ .add(jLabel3)))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(lblInfoObjectCreatedDate)
+ .add(jLabel4))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel5)
+ .add(lblInfoObjectModifiedDate))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(lblInfoObjectOwner)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel6))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel7)
+ .add(lblInfoObjectOwnerZone))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(lblInfoObjectDataPath)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel8))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel9)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, lblInfoObjectResourceGroup))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(lblInfoObjectChecksum)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel10))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel11)
+ .add(lblInfoObjectResource))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel12)
+ .add(lblInfoObjectReplicaNumber))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel13)
+ .add(lblInfoObjectReplicationStatus))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel14)
+ .add(lblInfoObjectStatus))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel15)
+ .add(lblInfoObjectType))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(pnlObjectInfoLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel16)
+ .add(lblInfoObjectVersion))
+ .addContainerGap(281, Short.MAX_VALUE))
+ );
+
+ pnlInfoCards.add(pnlObjectInfo, "cardObjectInfo");
+
+ pnlInfoTab.add(pnlInfoCards, java.awt.BorderLayout.CENTER);
+
+ pnlTagsComments.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+
+ jLabel17.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel17.text")); // NOI18N
+
+ txtInfoTags.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.txtInfoTags.text")); // NOI18N
+
+ jLabel18.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel18.text")); // NOI18N
+
+ textareaInfoComments.setColumns(20);
+ textareaInfoComments.setRows(5);
+ jScrollPane1.setViewportView(textareaInfoComments);
+
+ btnUpdateTagsComments.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnUpdateTagsComments.text")); // NOI18N
+ btnUpdateTagsComments.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnUpdateTagsCommentsActionPerformed(evt);
+ }
+ });
+
+ org.jdesktop.layout.GroupLayout pnlTagsCommentsLayout = new org.jdesktop.layout.GroupLayout(pnlTagsComments);
+ pnlTagsComments.setLayout(pnlTagsCommentsLayout);
+ pnlTagsCommentsLayout.setHorizontalGroup(
+ pnlTagsCommentsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlTagsCommentsLayout.createSequentialGroup()
+ .add(pnlTagsCommentsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, pnlTagsCommentsLayout.createSequentialGroup()
+ .addContainerGap()
+ .add(pnlTagsCommentsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel17)
+ .add(jLabel18))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 66, Short.MAX_VALUE)
+ .add(pnlTagsCommentsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
+ .add(txtInfoTags)
+ .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 408, Short.MAX_VALUE))
+ .add(6, 6, 6))
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, pnlTagsCommentsLayout.createSequentialGroup()
+ .add(0, 0, Short.MAX_VALUE)
+ .add(btnUpdateTagsComments)))
+ .addContainerGap())
+ );
+ pnlTagsCommentsLayout.setVerticalGroup(
+ pnlTagsCommentsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlTagsCommentsLayout.createSequentialGroup()
+ .add(6, 6, 6)
+ .add(pnlTagsCommentsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel17)
+ .add(txtInfoTags, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 28, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
+ .add(pnlTagsCommentsLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel18)
+ .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
+ .add(btnUpdateTagsComments)
+ .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ pnlInfoTab.add(pnlTagsComments, java.awt.BorderLayout.SOUTH);
+
+ tabbedpanelMain.addTab(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.pnlInfoTab.TabConstraints.tabTitle"), pnlInfoTab); // NOI18N
+
+ pnlMetadataTab.setLayout(new java.awt.BorderLayout());
+
+ pnlMetadataTable.setLayout(new java.awt.BorderLayout());
+
+ tableMetadata.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+ {null, null, null},
+ {null, null, null},
+ {null, null, null},
+ {null, null, null}
+ },
+ new String [] {
+ "Attribute", "Value", "Unit"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.String.class, java.lang.String.class, java.lang.String.class
+ };
+ boolean[] canEdit = new boolean [] {
+ false, false, false
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return canEdit [columnIndex];
+ }
+ });
+ tableMetadata.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+ jScrollPane2.setViewportView(tableMetadata);
+
+ pnlMetadataTable.add(jScrollPane2, java.awt.BorderLayout.CENTER);
+
+ jPanel5.setBorder(javax.swing.BorderFactory.createEmptyBorder(2, 2, 2, 2));
+ jPanel5.setPreferredSize(new java.awt.Dimension(568, 44));
+ jPanel5.setLayout(new java.awt.BorderLayout());
+
+ jPanel6.setPreferredSize(new java.awt.Dimension(100, 40));
+
+ btnMetadataDelete.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnMetadataDelete.text")); // NOI18N
+ btnMetadataDelete.setActionCommand(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnMetadataDelete.actionCommand")); // NOI18N
+ btnMetadataDelete.setEnabled(false);
+ btnMetadataDelete.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnMetadataDeleteActionPerformed(evt);
+ }
+ });
+
+ org.jdesktop.layout.GroupLayout jPanel6Layout = new org.jdesktop.layout.GroupLayout(jPanel6);
+ jPanel6.setLayout(jPanel6Layout);
+ jPanel6Layout.setHorizontalGroup(
+ jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(0, 100, Short.MAX_VALUE)
+ .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel6Layout.createSequentialGroup()
+ .add(8, 8, 8)
+ .add(btnMetadataDelete)
+ .addContainerGap(8, Short.MAX_VALUE)))
+ );
+ jPanel6Layout.setVerticalGroup(
+ jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(0, 40, Short.MAX_VALUE)
+ .add(jPanel6Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel6Layout.createSequentialGroup()
+ .add(5, 5, 5)
+ .add(btnMetadataDelete)
+ .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ );
+
+ jPanel5.add(jPanel6, java.awt.BorderLayout.EAST);
+
+ pnlMetadataTable.add(jPanel5, java.awt.BorderLayout.SOUTH);
+
+ pnlMetadataTab.add(pnlMetadataTable, java.awt.BorderLayout.CENTER);
+
+ pnlMetaDataEdit.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ pnlMetaDataEdit.setPreferredSize(new java.awt.Dimension(527, 200));
+
+ jLabel28.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel28.text")); // NOI18N
+
+ jLabel29.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel29.text")); // NOI18N
+
+ jLabel30.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.jLabel30.text")); // NOI18N
+
+ btnMetadataClear.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnMetadataClear.text")); // NOI18N
+ btnMetadataClear.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnMetadataClearActionPerformed(evt);
+ }
+ });
+
+ btnMetadataCreate.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnMetadataCreate.text")); // NOI18N
+ btnMetadataCreate.setEnabled(false);
+ btnMetadataCreate.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnMetadataCreateActionPerformed(evt);
+ }
+ });
+
+ txtMetadataAttribute.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.txtMetadataAttribute.text")); // NOI18N
+
+ txtMetadataValue.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.txtMetadataValue.text")); // NOI18N
+
+ txtMetadataUnit.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.txtMetadataUnit.text")); // NOI18N
+
+ org.jdesktop.layout.GroupLayout pnlMetaDataEditLayout = new org.jdesktop.layout.GroupLayout(pnlMetaDataEdit);
+ pnlMetaDataEdit.setLayout(pnlMetaDataEditLayout);
+ pnlMetaDataEditLayout.setHorizontalGroup(
+ pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlMetaDataEditLayout.createSequentialGroup()
+ .addContainerGap()
+ .add(pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlMetaDataEditLayout.createSequentialGroup()
+ .add(pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jLabel28)
+ .add(jLabel29)
+ .add(jLabel30))
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
+ .add(pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(txtMetadataValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 480, Short.MAX_VALUE)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, txtMetadataAttribute)
+ .add(txtMetadataUnit)))
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, pnlMetaDataEditLayout.createSequentialGroup()
+ .add(0, 0, Short.MAX_VALUE)
+ .add(btnMetadataClear)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(btnMetadataCreate)))
+ .addContainerGap())
+ );
+ pnlMetaDataEditLayout.setVerticalGroup(
+ pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(pnlMetaDataEditLayout.createSequentialGroup()
+ .addContainerGap(18, Short.MAX_VALUE)
+ .add(pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel28)
+ .add(txtMetadataAttribute, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .add(18, 18, 18)
+ .add(pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel29)
+ .add(txtMetadataValue, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .add(18, 18, 18)
+ .add(pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(jLabel30)
+ .add(txtMetadataUnit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .add(23, 23, 23)
+ .add(pnlMetaDataEditLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(btnMetadataClear)
+ .add(btnMetadataCreate))
+ .addContainerGap())
+ );
+
+ pnlMetadataTab.add(pnlMetaDataEdit, java.awt.BorderLayout.SOUTH);
+
+ tabbedpanelMain.addTab(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.pnlMetadataTab.TabConstraints.tabTitle"), pnlMetadataTab); // NOI18N
+
+ pnlPermissionsTab.setLayout(new java.awt.BorderLayout());
+
+ pnlPermissionsTable.setLayout(new java.awt.BorderLayout());
+
+ tablePermissions.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+ {"", null},
+ {null, null},
+ {null, null},
+ {null, null}
+ },
+ new String [] {
+ "User Name", "Share Permission"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.String.class, java.lang.Object.class
+ };
+ boolean[] canEdit = new boolean [] {
+ false, true
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return canEdit [columnIndex];
+ }
+ });
+ tablePermissions.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+ jScrollPane3.setViewportView(tablePermissions);
+
+ pnlPermissionsTable.add(jScrollPane3, java.awt.BorderLayout.CENTER);
+
+ jPanel7.setBorder(javax.swing.BorderFactory.createEmptyBorder(2, 2, 2, 2));
+ jPanel7.setPreferredSize(new java.awt.Dimension(568, 44));
+ jPanel7.setLayout(new java.awt.BorderLayout());
+
+ jPanel8.setPreferredSize(new java.awt.Dimension(100, 44));
+
+ btnPermissionsSave.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnPermissionsSave.text")); // NOI18N
+ btnPermissionsSave.setActionCommand(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnPermissionsSave.actionCommand")); // NOI18N
+ btnPermissionsSave.setEnabled(false);
+ btnPermissionsSave.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnPermissionsSaveActionPerformed(evt);
+ }
+ });
+
+ org.jdesktop.layout.GroupLayout jPanel8Layout = new org.jdesktop.layout.GroupLayout(jPanel8);
+ jPanel8.setLayout(jPanel8Layout);
+ jPanel8Layout.setHorizontalGroup(
+ jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel8Layout.createSequentialGroup()
+ .addContainerGap(19, Short.MAX_VALUE)
+ .add(btnPermissionsSave)
+ .addContainerGap())
+ );
+ jPanel8Layout.setVerticalGroup(
+ jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel8Layout.createSequentialGroup()
+ .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(btnPermissionsSave)
+ .addContainerGap())
+ );
+
+ jPanel7.add(jPanel8, java.awt.BorderLayout.EAST);
+
+ jPanel9.setPreferredSize(new java.awt.Dimension(100, 25));
+ jPanel9.setLayout(new java.awt.BorderLayout());
+
+ jPanel16.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 1, 1));
+
+ btnAddSharePermissions.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnAddSharePermissions.text")); // NOI18N
+ btnAddSharePermissions.setPreferredSize(new java.awt.Dimension(22, 24));
+ btnAddSharePermissions.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnAddSharePermissionsActionPerformed(evt);
+ }
+ });
+ jPanel16.add(btnAddSharePermissions);
+
+ btnDeleteSharePermissions.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnDeleteSharePermissions.text")); // NOI18N
+ btnDeleteSharePermissions.setEnabled(false);
+ btnDeleteSharePermissions.setPreferredSize(new java.awt.Dimension(22, 24));
+ btnDeleteSharePermissions.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnDeleteSharePermissionsActionPerformed(evt);
+ }
+ });
+ jPanel16.add(btnDeleteSharePermissions);
+
+ jPanel9.add(jPanel16, java.awt.BorderLayout.WEST);
+
+ jPanel7.add(jPanel9, java.awt.BorderLayout.WEST);
+
+ pnlPermissionsTable.add(jPanel7, java.awt.BorderLayout.SOUTH);
+
+ pnlPermissionsTab.add(pnlPermissionsTable, java.awt.BorderLayout.CENTER);
+
+ tabbedpanelMain.addTab(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.pnlPermissionsTab.TabConstraints.tabTitle"), pnlPermissionsTab); // NOI18N
+
+ jPanel1.add(tabbedpanelMain, java.awt.BorderLayout.CENTER);
+
+ pnlCloseBtn.setPreferredSize(new java.awt.Dimension(589, 35));
+ pnlCloseBtn.setLayout(new java.awt.BorderLayout());
+
+ jPanel3.setPreferredSize(new java.awt.Dimension(100, 40));
+ jPanel3.setSize(new java.awt.Dimension(200, 100));
+
+ org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
+ jPanel3.setLayout(jPanel3Layout);
+ jPanel3Layout.setHorizontalGroup(
+ jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(0, 100, Short.MAX_VALUE)
+ );
+ jPanel3Layout.setVerticalGroup(
+ jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(0, 35, Short.MAX_VALUE)
+ );
+
+ pnlCloseBtn.add(jPanel3, java.awt.BorderLayout.WEST);
+
+ btnClose.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnClose.text")); // NOI18N
+ btnClose.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnCloseActionPerformed(evt);
+ }
+ });
+
+ btnRefresh.setText(org.openide.util.NbBundle.getMessage(IRODSInfoDialog.class, "IRODSInfoDialog.btnRefresh.text")); // NOI18N
+ btnRefresh.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnRefreshActionPerformed(evt);
+ }
+ });
+
+ org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
+ jPanel4.setLayout(jPanel4Layout);
+ jPanel4Layout.setHorizontalGroup(
+ jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel4Layout.createSequentialGroup()
+ .addContainerGap(417, Short.MAX_VALUE)
+ .add(btnRefresh)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
+ .add(btnClose)
+ .addContainerGap())
+ );
+ jPanel4Layout.setVerticalGroup(
+ jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel4Layout.createSequentialGroup()
+ .add(0, 6, Short.MAX_VALUE)
+ .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(btnClose)
+ .add(btnRefresh)))
+ );
+
+ pnlCloseBtn.add(jPanel4, java.awt.BorderLayout.EAST);
+
+ jPanel1.add(pnlCloseBtn, java.awt.BorderLayout.PAGE_END);
+
+ getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void btnMetadataCreateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMetadataCreateActionPerformed
+ AvuData avuData;
+ CollectionAO collectionAO;
+ DataObjectAO dataObjectAO;
+ try {
+ // create AVU data object from text fields
+ String attr = txtMetadataAttribute.getText();
+ String value = txtMetadataValue.getText();
+ String unit = txtMetadataUnit.getText();
+ avuData = new AvuData(attr, value, unit);
+ if (isCollection()) {
+ collectionAO = irodsFileSystem.getIRODSAccessObjectFactory().getCollectionAO(irodsAccount);
+ collectionAO.addAVUMetadata(selectedObjectFullPath, avuData);
+ }
+ else {
+ dataObjectAO = irodsFileSystem.getIRODSAccessObjectFactory().getDataObjectAO(irodsAccount);
+ dataObjectAO.addAVUMetadata(selectedObjectFullPath, avuData);
+ }
+
+ // add to table
+ MetadataTableModel tm = (MetadataTableModel)tableMetadata.getModel();
+ tm.addRow(selectedObjectFullPath, attr, value, unit);
+
+ // clear text fields
+ txtMetadataAttribute.setText("");
+ txtMetadataValue.setText("");
+ txtMetadataUnit.setText("");
+
+ JOptionPane.showMessageDialog(
+ this, "Metadata Sucessfully Created", "Create Metadata", JOptionPane.PLAIN_MESSAGE);
+
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ JOptionPane.showMessageDialog(
+ this, "Metadata Creation Failed", "Create Metadata", JOptionPane.PLAIN_MESSAGE);
+ }
+ }//GEN-LAST:event_btnMetadataCreateActionPerformed
+
+ private void btnUpdateTagsCommentsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUpdateTagsCommentsActionPerformed
+
+ TaggingServiceFactory taggingServiceFactory = null;;
+ IRODSTagValue irodsTagValue = null;
+
+ try {
+ taggingServiceFactory = new TaggingServiceFactoryImpl(irodsFileSystem.getIRODSAccessObjectFactory());
+ FreeTaggingService freeTaggingService = taggingServiceFactory.instanceFreeTaggingService(irodsAccount);
+ IRODSTaggingService irodsTaggingService = taggingServiceFactory.instanceIrodsTaggingService(irodsAccount);
+
+ // first update the tags
+ String newTagStr = txtInfoTags.getText();
+ if (newTagStr != null ) { //&& !newTagStr.isEmpty()) {
+
+ // now need to diff against existing tags to see what to add and what to delete
+ String existingTags = null;
+ if (isCollection()) {
+ existingTags = freeTaggingService.getTagsForCollectionInFreeTagForm(
+ selectedObjectFullPath).getSpaceDelimitedTagsForDomain();
+ }
+ else {
+ existingTags = freeTaggingService.getTagsForDataObjectInFreeTagForm(
+ selectedObjectFullPath).getSpaceDelimitedTagsForDomain();
+ }
+
+ List<String> existingTagList = Arrays.asList(existingTags.split(" "));
+ List<String> newTagsList = Arrays.asList(newTagStr.split(" +"));
+
+ // find tags to delete and remove them
+ Set<String> tagsToDeleteSet = new HashSet<String>(existingTagList);
+ tagsToDeleteSet.removeAll(newTagsList);
+ String[] tagsToDelete = tagsToDeleteSet.toArray(new String[0]);
+ for (String tag: tagsToDelete) {
+ if (tag.length() > 0) {
+ irodsTagValue = new IRODSTagValue(tag, irodsAccount.getUserName());
+ if (isCollection()) {
+ irodsTaggingService.deleteTagFromCollection(selectedObjectFullPath, irodsTagValue);
+ }
+ else {
+ irodsTaggingService.deleteTagFromDataObject(selectedObjectFullPath, irodsTagValue);
+ }
+ }
+ }
+
+ // find tags to add
+ Set<String> tagsToAddSet = new HashSet<String>(newTagsList);
+ tagsToAddSet.removeAll(existingTagList);
+ String[] tagsToAdd = tagsToAddSet.toArray(new String[0]);
+ for (String tag: tagsToAdd) {
+ if (tag.length() > 0) {
+ irodsTagValue = new IRODSTagValue(tag, irodsAccount.getUserName());
+ if (isCollection()) {
+ irodsTaggingService.addTagToCollection(selectedObjectFullPath, irodsTagValue);
+ }
+ else {
+ irodsTaggingService.addTagToDataObject(selectedObjectFullPath, irodsTagValue);
+ }
+ }
+ }
+ }
+
+
+ // now update comments
+ String commentStr = textareaInfoComments.getText();
+ if (commentStr != null && !commentStr.isEmpty()) {
+
+ // update comments
+ irodsTagValue = new IRODSTagValue(commentStr, irodsAccount.getUserName());
+ if (isCollection()) {
+ irodsTaggingService.checkAndUpdateDescriptionOnCollection(selectedObjectFullPath, irodsTagValue);
+ }
+ else {
+ irodsTaggingService.checkAndUpdateDescriptionOnDataObject(selectedObjectFullPath, irodsTagValue);
+ }
+ }
+ else {
+ // remove all comments
+ if (isCollection()) {
+ irodsTagValue = irodsTaggingService.getDescriptionOnCollectionForLoggedInUser(selectedObjectFullPath);
+ if (irodsTagValue != null) {
+ irodsTaggingService.deleteDescriptionFromCollection(selectedObjectFullPath, irodsTagValue);
+ }
+ }
+ else {
+ irodsTagValue = irodsTaggingService.getDescriptionOnDataObjectForLoggedInUser(selectedObjectFullPath);
+ if (irodsTagValue != null) {
+ irodsTaggingService.deleteDescriptionFromDataObject(selectedObjectFullPath, irodsTagValue);
+ }
+ }
+ }
+
+ JOptionPane.showMessageDialog(
+ this, "Tags and Comments Sucessfully Updated", "Update Tags and Comments", JOptionPane.PLAIN_MESSAGE);
+
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ JOptionPane.showMessageDialog(
+ this, "Update of Tags and Comments Failed");
+ }
+ }//GEN-LAST:event_btnUpdateTagsCommentsActionPerformed
+
+ private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCloseActionPerformed
+ this.dispose();
+ }//GEN-LAST:event_btnCloseActionPerformed
+
+ private void btnMetadataClearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMetadataClearActionPerformed
+ // clear table selection
+// tableMetadata.clearSelection();
+
+ // clear all text fields
+// txtMetadataAttribute.setText("");
+// txtMetadataValue.setText("");
+// txtMetadataUnit.setText("");
+ }//GEN-LAST:event_btnMetadataClearActionPerformed
+
+ private void btnMetadataDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnMetadataDeleteActionPerformed
+ AvuData avuData;
+ CollectionAO collectionAO;
+ DataObjectAO dataObjectAO;
+
+ try {
+ String attr = null;
+ String value = null;
+ String unit = null;
+
+ // get selected rows to delete in metadata table
+ int[] selectedRows = tableMetadata.getSelectedRows();
+ for (int i=0; i<selectedRows.length; i++) {
+ // create AVU data object to delete
+ attr = (String)tableMetadata.getValueAt(selectedRows[i], 0);
+ value = (String)tableMetadata.getValueAt(selectedRows[i], 1);
+ unit = (String)tableMetadata.getValueAt(selectedRows[i], 2);
+ avuData = new AvuData(attr, value, unit);
+ if (isCollection()) {
+ collectionAO = irodsFileSystem.getIRODSAccessObjectFactory().getCollectionAO(irodsAccount);
+ collectionAO.deleteAVUMetadata(selectedObjectFullPath, avuData);
+ }
+ else {
+ dataObjectAO = irodsFileSystem.getIRODSAccessObjectFactory().getDataObjectAO(irodsAccount);
+ dataObjectAO.deleteAVUMetadata(selectedObjectFullPath, avuData);
+ }
+ // remove from table
+ MetadataTableModel tm = (MetadataTableModel)tableMetadata.getModel();
+ tm.deleteRow(selectedObjectFullPath, attr, value, unit, selectedRows[i]);
+ }
+
+ JOptionPane.showMessageDialog(
+ this, "Metadata Sucessfully Deleted", "Delete Metadata", JOptionPane.PLAIN_MESSAGE);
+
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ JOptionPane.showMessageDialog(
+ this, "Metadata Delete Failed", "Delete Metadata", JOptionPane.PLAIN_MESSAGE);
+ }
+ }//GEN-LAST:event_btnMetadataDeleteActionPerformed
+
+ private void btnRefreshActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRefreshActionPerformed
+
+ if (tabbedpanelMain.getSelectedComponent() == pnlInfoTab) {
+ initializeFileInfo();
+ }
+ else
+ if (tabbedpanelMain.getSelectedComponent() == pnlMetadataTab) {
+ initMetadataInfo();
+ }
+ else { // permissions tab
+ initPermissionInfo();
+ }
+ }//GEN-LAST:event_btnRefreshActionPerformed
+
+ private void btnPermissionsSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPermissionsSaveActionPerformed
+
+ PermissionsTableModel tm = (PermissionsTableModel)tablePermissions.getModel();
+
+ try {
+ // first get any permissions that were removed
+ UserFilePermission[] permissionsToDelete = tm.getPermissionsToDelete();
+
+ for (UserFilePermission permission: permissionsToDelete) {
+
+ if (isCollection()) {
+ CollectionAO collectionAO = irodsFileSystem.getIRODSAccessObjectFactory().getCollectionAO(irodsAccount);
+ collectionAO.removeAccessPermissionForUser(
+ permission.getUserZone(),
+ selectedObjectFullPath,
+ permission.getUserName(),
+ true);
+ }
+ else {
+ DataObjectAO dataObjectAO = irodsFileSystem.getIRODSAccessObjectFactory().getDataObjectAO(irodsAccount);
+ dataObjectAO.removeAccessPermissionsForUser(
+ permission.getUserZone(),
+ selectedObjectFullPath,
+ permission.getUserName());
+ }
+ }
+
+ // now add any permissions that were added
+ UserFilePermission[] permissionsToAdd = tm.getPermissionsToAdd();
+
+ for (UserFilePermission permission: permissionsToAdd) {
+ CollectionAO collectionAO = irodsFileSystem.getIRODSAccessObjectFactory().getCollectionAO(irodsAccount);
+ DataObjectAO dataObjectAO = irodsFileSystem.getIRODSAccessObjectFactory().getDataObjectAO(irodsAccount);
+
+ if (permission.getFilePermissionEnum() == FilePermissionEnum.READ) {
+ if (isCollection()) {
+ collectionAO.setAccessPermissionRead(
+ permission.getUserZone(),
+ selectedObjectFullPath,
+ permission.getUserName(),
+ true);
+ }
+ else {
+ dataObjectAO.setAccessPermissionRead(
+ permission.getUserZone(),
+ selectedObjectFullPath,
+ permission.getUserName());
+ }
+ }
+ else
+ if (permission.getFilePermissionEnum() == FilePermissionEnum.WRITE) {
+ if (isCollection()) {
+ collectionAO.setAccessPermissionWrite(
+ permission.getUserZone(),
+ selectedObjectFullPath,
+ permission.getUserName(),
+ true);
+ }
+ else {
+ dataObjectAO.setAccessPermissionWrite(
+ permission.getUserZone(),
+ selectedObjectFullPath,
+ permission.getUserName());
+ }
+ }
+ else
+ if (permission.getFilePermissionEnum() == FilePermissionEnum.OWN) {
+ if (isCollection()) {
+ collectionAO.setAccessPermissionOwn(
+ permission.getUserZone(),
+ selectedObjectFullPath,
+ permission.getUserName(),
+ true);
+ }
+ else {
+ dataObjectAO.setAccessPermissionOwn(
+ permission.getUserZone(),
+ selectedObjectFullPath,
+ permission.getUserName());
+ }
+ }
+ }
+
+ if((permissionsToAdd.length > 0) || (permissionsToDelete.length > 0)) {
+ JOptionPane.showMessageDialog(
+ this, "Permissions Updated Sucessfully", "Update Permissions", JOptionPane.PLAIN_MESSAGE);
+ }
+
+ tm.resetOriginalPermissionList();
+
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ JOptionPane.showMessageDialog(
+ this, "Permission Update Failed", "Update Permissions", JOptionPane.PLAIN_MESSAGE);
+ }
+
+ btnPermissionsSave.setEnabled(false);
+ }//GEN-LAST:event_btnPermissionsSaveActionPerformed
+
+ private void btnAddSharePermissionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddSharePermissionsActionPerformed
+ AddPermissionsDialog addPermissionsDialog = new AddPermissionsDialog(
+ this, true, irodsFileSystem, irodsAccount);
+
+ addPermissionsDialog.setLocation(
+ (int)this.getLocation().getX(), (int)this.getLocation().getY());
+ addPermissionsDialog.setVisible(true);
+
+ UserFilePermission userFilePermission = addPermissionsDialog.getPermissionToAdd();
+
+ // first remove this user's entry from table if there is one
+ if (userFilePermission != null) {
+ try {
+ UserAO userAO = irodsFileSystem.getIRODSAccessObjectFactory().getUserAO(irodsAccount);
+ String tableUserName = userFilePermission.getUserName() + "#" + userFilePermission.getUserZone();
+
+ PermissionsTableModel tm = (PermissionsTableModel)tablePermissions.getModel();
+ tm.deleteRow(userAO.findByName(tableUserName));
+
+ // now add to table
+ tm.addRow(userAO.findByName(tableUserName), userFilePermission.getFilePermissionEnum());
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ btnPermissionsSave.setEnabled(true);
+ }
+ }//GEN-LAST:event_btnAddSharePermissionsActionPerformed
+
+ private void btnDeleteSharePermissionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteSharePermissionsActionPerformed
+
+ int[] selectedRows = tablePermissions.getSelectedRows();
+ int numRowsSelected = selectedRows.length;
+
+ // have to remove rows in reverse
+ for(int i=numRowsSelected-1; i>=0; i--) {
+ int selectedRow = selectedRows[i];
+ if (selectedRow >= 0) {
+ PermissionsTableModel model = (PermissionsTableModel) tablePermissions.getModel();
+ model.deleteRow(selectedRow);
+ btnPermissionsSave.setEnabled(true);
+ }
+ }
+ }//GEN-LAST:event_btnDeleteSharePermissionsActionPerformed
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton btnAddSharePermissions;
+ private javax.swing.JButton btnClose;
+ private javax.swing.JButton btnDeleteSharePermissions;
+ private javax.swing.JButton btnMetadataClear;
+ private javax.swing.JButton btnMetadataCreate;
+ private javax.swing.JButton btnMetadataDelete;
+ private javax.swing.JButton btnPermissionsSave;
+ private javax.swing.JButton btnRefresh;
+ private javax.swing.JButton btnUpdateTagsComments;
+ private javax.swing.JLabel jLabel10;
+ private javax.swing.JLabel jLabel11;
+ private javax.swing.JLabel jLabel12;
+ private javax.swing.JLabel jLabel13;
+ private javax.swing.JLabel jLabel14;
+ private javax.swing.JLabel jLabel15;
+ private javax.swing.JLabel jLabel16;
+ private javax.swing.JLabel jLabel17;
+ private javax.swing.JLabel jLabel18;
+ private javax.swing.JLabel jLabel19;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel20;
+ private javax.swing.JLabel jLabel21;
+ private javax.swing.JLabel jLabel22;
+ private javax.swing.JLabel jLabel23;
+ private javax.swing.JLabel jLabel24;
+ private javax.swing.JLabel jLabel25;
+ private javax.swing.JLabel jLabel26;
+ private javax.swing.JLabel jLabel27;
+ private javax.swing.JLabel jLabel28;
+ private javax.swing.JLabel jLabel29;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel30;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JLabel jLabel7;
+ private javax.swing.JLabel jLabel8;
+ private javax.swing.JLabel jLabel9;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel16;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JPanel jPanel6;
+ private javax.swing.JPanel jPanel7;
+ private javax.swing.JPanel jPanel8;
+ private javax.swing.JPanel jPanel9;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JScrollPane jScrollPane3;
+ private javax.swing.JLabel lblInfoCollectionCreatedDate;
+ private javax.swing.JLabel lblInfoCollectionDescription;
+ private javax.swing.JLabel lblInfoCollectionInfo1;
+ private javax.swing.JLabel lblInfoCollectionInfo2;
+ private javax.swing.JLabel lblInfoCollectionModifiedDate;
+ private javax.swing.JLabel lblInfoCollectionObjectPath;
+ private javax.swing.JLabel lblInfoCollectionOwner;
+ private javax.swing.JLabel lblInfoCollectionOwnerZone;
+ private javax.swing.JLabel lblInfoCollectionType;
+ private javax.swing.JLabel lblInfoObjectChecksum;
+ private javax.swing.JLabel lblInfoObjectCreatedDate;
+ private javax.swing.JLabel lblInfoObjectDataPath;
+ private javax.swing.JLabel lblInfoObjectModifiedDate;
+ private javax.swing.JLabel lblInfoObjectName;
+ private javax.swing.JLabel lblInfoObjectOwner;
+ private javax.swing.JLabel lblInfoObjectOwnerZone;
+ private javax.swing.JLabel lblInfoObjectParent;
+ private javax.swing.JLabel lblInfoObjectReplicaNumber;
+ private javax.swing.JLabel lblInfoObjectReplicationStatus;
+ private javax.swing.JLabel lblInfoObjectResource;
+ private javax.swing.JLabel lblInfoObjectResourceGroup;
+ private javax.swing.JLabel lblInfoObjectSize;
+ private javax.swing.JLabel lblInfoObjectStatus;
+ private javax.swing.JLabel lblInfoObjectType;
+ private javax.swing.JLabel lblInfoObjectVersion;
+ private javax.swing.JLabel lblObjectCollection;
+ private javax.swing.JPanel pnlCloseBtn;
+ private javax.swing.JPanel pnlCollectionInfo;
+ private javax.swing.JPanel pnlInfoCards;
+ private javax.swing.JPanel pnlInfoTab;
+ private javax.swing.JPanel pnlMetaDataEdit;
+ private javax.swing.JPanel pnlMetadataTab;
+ private javax.swing.JPanel pnlMetadataTable;
+ private javax.swing.JPanel pnlObjectInfo;
+ private javax.swing.JPanel pnlPermissionsTab;
+ private javax.swing.JPanel pnlPermissionsTable;
+ private javax.swing.JPanel pnlSelectedObject;
+ private javax.swing.JPanel pnlTagsComments;
+ private javax.swing.JTabbedPane tabbedpanelMain;
+ private javax.swing.JTable tableMetadata;
+ private javax.swing.JTable tablePermissions;
+ private javax.swing.JTextArea textareaInfoComments;
+ private javax.swing.JTextField txtInfoTags;
+ private javax.swing.JTextField txtMetadataAttribute;
+ private javax.swing.JTextField txtMetadataUnit;
+ private javax.swing.JTextField txtMetadataValue;
+ // End of variables declaration//GEN-END:variables
+
+}
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/SearchResultsDialog.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/SearchResultsDialog.form
new file mode 100644
index 0000000..13b06da
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/SearchResultsDialog.form
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="2"/>
+ <Property name="title" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="SearchResultsDialog.title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-9,0,0,2,-107"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel1">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlTabSearch">
+ <Properties>
+ <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="SearchResultsDialog.pnlTabSearch.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlTabSearchTop">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlTabSearchResults">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout">
+ <Property name="columns" type="int" value="0"/>
+ <Property name="rows" type="int" value="1"/>
+ </Layout>
+ <SubComponents>
+ <Container class="javax.swing.JScrollPane" name="scrollPaneSearchResults">
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTable" name="tableSearchResults">
+ <Properties>
+ <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
+ <Table columnCount="4" rowCount="4">
+ <Column editable="true" title="Title 1" type="java.lang.Object"/>
+ <Column editable="true" title="Title 2" type="java.lang.Object"/>
+ <Column editable="true" title="Title 3" type="java.lang.Object"/>
+ <Column editable="true" title="Title 4" type="java.lang.Object"/>
+ </Table>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel2">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[661, 50]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace pref="528" max="32767" attributes="0"/>
+ <Component id="btnDismiss" min="-2" max="-2" attributes="0"/>
+ <EmptySpace min="-2" pref="38" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace min="-2" pref="15" max="-2" attributes="0"/>
+ <Component id="btnDismiss" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnDismiss">
+ <Properties>
+ <Property name="label" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="SearchResultsDialog.btnDismiss.label" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnDismissActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/SearchResultsDialog.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/SearchResultsDialog.java
new file mode 100644
index 0000000..7238589
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/SearchResultsDialog.java
@@ -0,0 +1,222 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.irods.jargon.idrop.desktop.systraygui;
+
+import java.awt.Cursor;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.tree.TreePath;
+import org.irods.jargon.core.pub.CollectionAndDataObjectListAndSearchAO;
+import org.irods.jargon.core.query.CollectionAndDataObjectListingEntry;
+import org.irods.jargon.idrop.desktop.systraygui.utils.TreeUtils;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSNode;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSOutlineModel;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSSearchTableModel;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSTree;
+import org.irods.jargon.idrop.exceptions.IdropException;
+import org.openide.util.Exceptions;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author lisa
+ */
+public class SearchResultsDialog extends javax.swing.JDialog implements ListSelectionListener {
+
+ private iDrop idropGui;
+ private IRODSTree irodsTree;
+ private IRODSOutlineModel irodsFileSystemModel;
+ private String searchText;
+ public static org.slf4j.Logger log = LoggerFactory.getLogger(IRODSTree.class);
+
+ /**
+ * Creates new form SearchResultsDialog
+ */
+ public SearchResultsDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ }
+
+ public SearchResultsDialog(final iDrop parent, final boolean modal,
+ final IRODSTree irodsTree, final String searchText) {
+ super(parent, modal);
+ initComponents();
+
+ this.idropGui = parent;
+ this.irodsTree = irodsTree;
+ this.searchText = searchText;
+ this.irodsFileSystemModel = (IRODSOutlineModel) irodsTree.getModel();
+
+ initSearchResults();
+ }
+
+ private void initSearchResults() {
+ final String searchTerms = searchText.trim();
+
+ tableSearchResults.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ ListSelectionModel listSelectionModel = tableSearchResults.getSelectionModel();
+ listSelectionModel.addListSelectionListener(this);
+
+ java.awt.EventQueue.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+
+ try {
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ CollectionAndDataObjectListAndSearchAO collectionAndDataObjectListAndSearchAO =
+ idropGui.getiDropCore().getIRODSAccessObjectFactory().getCollectionAndDataObjectListAndSearchAO(
+ idropGui.getiDropCore().getIrodsAccount());
+ IRODSSearchTableModel irodsSearchTableModel = new IRODSSearchTableModel(
+ collectionAndDataObjectListAndSearchAO.searchCollectionsAndDataObjectsBasedOnName(searchTerms));
+ tableSearchResults.setModel(irodsSearchTableModel);
+ //tabIrodsViews.setSelectedComponent(pnlTabSearch);
+ } catch (Exception e) {
+ idropGui.showIdropException(e);
+ return;
+ } finally {
+ idropGui.getiDropCore().closeAllIRODSConnections();
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+ }
+ });
+ }
+
+
+ @Override
+ public void valueChanged(ListSelectionEvent lse) {
+ if (lse.getValueIsAdjusting())
+ return;
+
+ int row = tableSearchResults.getSelectedRow();
+
+ CollectionAndDataObjectListingEntry.ObjectType objType =
+ (CollectionAndDataObjectListingEntry.ObjectType) tableSearchResults.getValueAt(row, 0);
+ String selectedParent = (String) tableSearchResults.getValueAt(row, 1);
+ String selectedName = (String) tableSearchResults.getValueAt(row, 2);
+ if (selectedParent != null && selectedName != null) {
+
+ log.info("selected returned search result: {}", selectedParent + "/" + selectedName);
+
+ CollectionAndDataObjectListingEntry entry = new CollectionAndDataObjectListingEntry();
+ entry.setObjectType(objType);
+ entry.setParentPath(selectedParent);
+ entry.setPathOrName(selectedName);
+
+ TreePath path = null;
+ try {
+ path = TreeUtils.buildTreePathForIrodsAbsolutePath(irodsTree, selectedParent + "/" + selectedName);
+ } catch (IdropException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+
+ if (path != null) {
+ irodsTree.expandPath(path);
+ java.awt.Rectangle rect = irodsTree.getPathBounds(path);
+ if (rect != null) {
+ irodsTree.scrollRectToVisible(rect);
+ }
+ }
+ }
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanel1 = new javax.swing.JPanel();
+ pnlTabSearch = new javax.swing.JPanel();
+ pnlTabSearchTop = new javax.swing.JPanel();
+ pnlTabSearchResults = new javax.swing.JPanel();
+ scrollPaneSearchResults = new javax.swing.JScrollPane();
+ tableSearchResults = new javax.swing.JTable();
+ jPanel2 = new javax.swing.JPanel();
+ btnDismiss = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setTitle(org.openide.util.NbBundle.getMessage(SearchResultsDialog.class, "SearchResultsDialog.title")); // NOI18N
+
+ jPanel1.setLayout(new java.awt.BorderLayout());
+
+ pnlTabSearch.setToolTipText(org.openide.util.NbBundle.getMessage(SearchResultsDialog.class, "SearchResultsDialog.pnlTabSearch.toolTipText")); // NOI18N
+ pnlTabSearch.setLayout(new java.awt.BorderLayout());
+ pnlTabSearch.add(pnlTabSearchTop, java.awt.BorderLayout.NORTH);
+
+ pnlTabSearchResults.setLayout(new java.awt.GridLayout());
+
+ tableSearchResults.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+ {null, null, null, null},
+ {null, null, null, null},
+ {null, null, null, null},
+ {null, null, null, null}
+ },
+ new String [] {
+ "Title 1", "Title 2", "Title 3", "Title 4"
+ }
+ ));
+ scrollPaneSearchResults.setViewportView(tableSearchResults);
+
+ pnlTabSearchResults.add(scrollPaneSearchResults);
+
+ pnlTabSearch.add(pnlTabSearchResults, java.awt.BorderLayout.CENTER);
+
+ jPanel1.add(pnlTabSearch, java.awt.BorderLayout.CENTER);
+
+ getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
+
+ jPanel2.setPreferredSize(new java.awt.Dimension(661, 50));
+
+ btnDismiss.setLabel(org.openide.util.NbBundle.getMessage(SearchResultsDialog.class, "SearchResultsDialog.btnDismiss.label")); // NOI18N
+ btnDismiss.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnDismissActionPerformed(evt);
+ }
+ });
+
+ org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup()
+ .addContainerGap(528, Short.MAX_VALUE)
+ .add(btnDismiss)
+ .add(38, 38, 38))
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(jPanel2Layout.createSequentialGroup()
+ .add(15, 15, 15)
+ .add(btnDismiss)
+ .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void btnDismissActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDismissActionPerformed
+ this.dispose();
+ }//GEN-LAST:event_btnDismissActionPerformed
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton btnDismiss;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel pnlTabSearch;
+ private javax.swing.JPanel pnlTabSearchResults;
+ private javax.swing.JPanel pnlTabSearchTop;
+ private javax.swing.JScrollPane scrollPaneSearchResults;
+ private javax.swing.JTable tableSearchResults;
+ // End of variables declaration//GEN-END:variables
+
+}
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/UploadDialog.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/UploadDialog.form
new file mode 100644
index 0000000..6ac3155
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/UploadDialog.form
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="2"/>
+ <Property name="title" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[600, 400]"/>
+ </Property>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,8,0,0,1,-25"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel1">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="6" left="6" right="6" top="6"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[600, 400]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel4">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
+ <EtchetBorder/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[945, 76]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel9">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 32]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="North"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel7">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="West"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel1">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtUploadTarget">
+ <Properties>
+ <Property name="editable" type="boolean" value="false"/>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.txtUploadTarget.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[200, 28]"/>
+ </Property>
+ <Property name="requestFocusEnabled" type="boolean" value="false"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel8">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnBrowseUploadTarget">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.btnBrowseUploadTarget.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnBrowseUploadTargetActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel10">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="10" left="1" right="1" top="1"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 40]"/>
+ </Property>
+ <Property name="size" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 32]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel11">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="0" left="0" right="0" top="0"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnUseIrodsHome">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.btnUseIrodsHome.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnUseIrodsHomeActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnUseLastUpload">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.btnUseLastUpload.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnUseLastUploadActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel5">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="4" right="4" top="14"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[462, 250]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel2">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="First"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[454, 190]"/>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTable" name="tblFilesToUpload">
+ <Properties>
+ <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
+ <Table columnCount="1" rowCount="0">
+ <Column editable="false" title="File" type="java.lang.String"/>
+ </Table>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel3">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 25]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel6">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="West"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout">
+ <Property name="horizontalGap" type="int" value="1"/>
+ <Property name="verticalGap" type="int" value="1"/>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnAddUploadFile">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.btnAddUploadFile.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[22, 24]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnAddUploadFileActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnDeleteUploadFile">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.btnDeleteUploadFile.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[22, 24]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnDeleteUploadFileActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel2">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel12">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="btnUploadNow">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.btnUploadNow.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="enabled" type="boolean" value="false"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnUploadNowActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnCancel">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="UploadDialog.btnCancel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCancelActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/UploadDialog.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/UploadDialog.java
new file mode 100644
index 0000000..8c08ba5
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/UploadDialog.java
@@ -0,0 +1,577 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.irods.jargon.idrop.desktop.systraygui;
+
+import java.awt.Cursor;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import javax.swing.JFileChooser;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.tree.TreePath;
+import javax.swing.tree.TreeSelectionModel;
+import org.irods.jargon.core.exception.JargonException;
+import org.irods.jargon.core.pub.io.IRODSFile;
+import org.irods.jargon.core.utils.MiscIRODSUtils;
+import org.irods.jargon.idrop.desktop.systraygui.services.IRODSFileService;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSNode;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSOutlineModel;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSTree;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.LocalFileNode;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.LocalFileSystemModel;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.LocalFileTree;
+import org.irods.jargon.idrop.exceptions.IdropException;
+import org.irods.jargon.idrop.finder.IRODSFinderDialog;
+import org.irods.jargon.transfer.dao.domain.LocalIRODSTransfer;
+import org.irods.jargon.transfer.dao.domain.TransferType;
+import org.openide.util.Exceptions;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author lisa
+ */
+public class UploadDialog extends javax.swing.JDialog implements ListSelectionListener {
+
+ iDrop idropGUI;
+ IRODSTree irodsTree;
+ LocalFileTree localFileTree;
+ public static org.slf4j.Logger log = LoggerFactory.getLogger(IRODSTree.class);
+
+ /**
+ * Creates new form UploadDialog
+ */
+ public UploadDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ }
+
+ public UploadDialog(final iDrop parent, final boolean modal,
+ final IRODSTree irodsTree,
+ final LocalFileTree localFileTree) {
+ super(parent, modal);
+ initComponents();
+
+ this.idropGUI = parent;
+ this.irodsTree = irodsTree;
+ this.localFileTree = localFileTree;
+ this.btnDeleteUploadFile.setEnabled(false);
+ tblFilesToUpload.getSelectionModel().addListSelectionListener(this);
+
+ initUploadTarget();
+// initSourcesFiles();
+ setUploadButtonState();
+ }
+
+ private void initUploadTarget() {
+
+ String target = "";
+
+ //check for selected collection to use for upload target
+ // get iRODS File Service
+ IRODSFileService irodsFS = null;
+ try {
+ irodsFS = new IRODSFileService(idropGUI.getiDropCore().getIrodsAccount(),
+ idropGUI.getiDropCore().getIrodsFileSystem());
+ } catch (Exception ex) {
+ //JOptionPane.showMessageDialog(this, "Cannot access iRODS file system for get.");
+ log.error("cannot create irods file service");
+ return;
+ }
+
+ IRODSOutlineModel irodsFileSystemModel = (IRODSOutlineModel) irodsTree.getModel();
+ ListSelectionModel selectionModel = irodsTree.getSelectionModel();
+ int idx = selectionModel.getLeadSelectionIndex();
+
+ // make sure there is a selected node
+ if (idx >= 0) {
+ IRODSFile ifile = null;
+ try {
+ IRODSNode selectedNode = (IRODSNode) irodsFileSystemModel.getValueAt(idx, 0);
+ ifile = irodsFS.getIRODSFileForPath(selectedNode.getFullPath());
+
+ // rule out "/" and choose parent if file is not a directory
+ String path = ifile.getAbsolutePath();
+ if (ifile.isFile()) {
+ path = ifile.getParent();
+ }
+ if ((path != null) && (!path.equals("/"))) {
+ target = path;
+ }
+ } catch (IdropException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ }
+// else {
+//
+// // next see if can find some put history in the transfer queue
+// // manager and use that target location
+// // next see if can find some get history in the transfer queue
+// try {
+// List<LocalIRODSTransfer> transfers = idropGUI.getiDropCore().getTransferManager().getRecentQueue();
+//
+// // assuming most recent first
+// for (LocalIRODSTransfer transfer: transfers) {
+// if (transfer.getTransferType() == TransferType.PUT) {
+// target = transfer.getIrodsAbsolutePath();
+// break;
+// }
+// }
+// } catch (JargonException ex) {
+// Exceptions.printStackTrace(ex);
+// }
+// }
+
+ txtUploadTarget.setText(target);
+ }
+
+
+ // seems to be impossible to preselect files in filechooser component
+ // don't do this for now
+// private void initSourcesFiles() {
+//
+// //check for selected files and/or folders to upload
+// TreeSelectionModel selectionModel = localFileTree.getSelectionModel();
+// LocalFileSystemModel fileSystemModel = (LocalFileSystemModel) localFileTree.getModel();
+//
+// TreePath[] selectionPaths = selectionModel.getSelectionPaths();
+//
+// // now select these paths in the file chooser
+// if ( selectionPaths != null) {
+// LocalFileNode sourceNode;
+// for (TreePath selectionPath : selectionPaths) {
+// sourceNode = (LocalFileNode) selectionPath.getLastPathComponent();
+// File file = (File) sourceNode.getUserObject();
+// //txtareaUploadSourceList.append(file.getAbsolutePath() + "\n");
+// localChooser.setSelectedFile(file);
+// }
+// }
+//
+// }
+
+ private void setUploadButtonState() {
+ btnUploadNow.setEnabled(((txtUploadTarget.getText().length() > 0) &&
+ (tblFilesToUpload.getModel().getRowCount() > 0)));
+ }
+
+
+ private void executeUpload() {
+
+ idropGUI.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+
+ final String targetPath = txtUploadTarget.getText();
+ //final String sourceFiles[] = txtareaUploadSourceList.getText().split("\n");
+ final String sourceFiles[] = getFilesToUpload();
+
+ // process as a put
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+
+ for (String transferFile : sourceFiles) {
+ log.info("process a put from source: {}",
+ transferFile);
+
+ String sourceResource = idropGUI.getIrodsAccount().getDefaultStorageResource();
+ log.info("initiating put transfer");
+ try {
+ idropGUI.getiDropCore().getTransferManager().enqueueAPut(transferFile,
+ targetPath,
+ sourceResource,
+ idropGUI.getIrodsAccount());
+ } catch (JargonException ex) {
+ java.util.logging.Logger.getLogger(
+ LocalFileTree.class.getName()).log(
+ java.util.logging.Level.SEVERE, null, ex);
+ idropGUI.showIdropException(ex);
+ }
+ }
+ }
+ });
+
+ idropGUI.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+
+
+ private String[] getFilesToUpload() {
+
+ int numFiles = 0;
+ DefaultTableModel model = (DefaultTableModel) tblFilesToUpload.getModel();
+ numFiles = model.getRowCount();
+ String[] filesToUpload = new String[numFiles];
+
+ for (int i=0; i<numFiles; i++) {
+ filesToUpload[i] = (String) model.getValueAt(i, 0);
+ }
+
+ return filesToUpload;
+ }
+
+ private void setFilesToUpload(File[] files) {
+
+ DefaultTableModel model = (DefaultTableModel) tblFilesToUpload.getModel();
+
+ for(int i=0; i<files.length; i++) {
+ String filePath = files[i].getAbsolutePath();
+ model.addRow(new Object[] {filePath});
+ }
+ }
+
+
+ @Override
+ public void valueChanged(ListSelectionEvent lse) {
+ if (lse.getValueIsAdjusting() == false) {
+ btnDeleteUploadFile.setEnabled(tblFilesToUpload.getSelectedRow() >= 0);
+ }
+ }
+
+// private void btnBrowseUploadSourceActionPerformed(java.awt.event.ActionEvent evt) {
+//
+// JFileChooser localFileChooser = new JFileChooser();
+// localFileChooser.setMultiSelectionEnabled(true);
+// localFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+// localFileChooser.setDialogTitle("Select Files and Collections to Upload");
+// localFileChooser.setLocation(
+// (int)this.getLocation().getX(), (int)this.getLocation().getY());
+// int returnVal = localFileChooser.showOpenDialog(this);
+//
+// if (returnVal == JFileChooser.APPROVE_OPTION) {
+// File uploadFiles[] = localFileChooser.getSelectedFiles();
+// for (File uploadFile: uploadFiles) {
+// txtareaUploadSourceList.append(uploadFile.getAbsolutePath() + "\n");
+// }
+// setUploadButtonState();
+// }
+// }
+
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanel1 = new javax.swing.JPanel();
+ jPanel4 = new javax.swing.JPanel();
+ jPanel9 = new javax.swing.JPanel();
+ jPanel7 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ txtUploadTarget = new javax.swing.JTextField();
+ jPanel8 = new javax.swing.JPanel();
+ btnBrowseUploadTarget = new javax.swing.JButton();
+ jPanel10 = new javax.swing.JPanel();
+ jPanel11 = new javax.swing.JPanel();
+ btnUseIrodsHome = new javax.swing.JButton();
+ btnUseLastUpload = new javax.swing.JButton();
+ jPanel5 = new javax.swing.JPanel();
+ jLabel2 = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ tblFilesToUpload = new javax.swing.JTable();
+ jPanel3 = new javax.swing.JPanel();
+ jPanel6 = new javax.swing.JPanel();
+ btnAddUploadFile = new javax.swing.JButton();
+ btnDeleteUploadFile = new javax.swing.JButton();
+ jPanel2 = new javax.swing.JPanel();
+ jPanel12 = new javax.swing.JPanel();
+ btnUploadNow = new javax.swing.JButton();
+ btnCancel = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setTitle(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.title")); // NOI18N
+ setPreferredSize(new java.awt.Dimension(600, 400));
+
+ jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(6, 6, 6, 6));
+ jPanel1.setPreferredSize(new java.awt.Dimension(600, 400));
+ jPanel1.setLayout(new java.awt.BorderLayout());
+
+ jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ jPanel4.setPreferredSize(new java.awt.Dimension(945, 76));
+ jPanel4.setLayout(new java.awt.BorderLayout());
+
+ jPanel9.setPreferredSize(new java.awt.Dimension(100, 32));
+ jPanel9.setLayout(new java.awt.BorderLayout());
+
+ jLabel1.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.jLabel1.text")); // NOI18N
+ jPanel7.add(jLabel1);
+
+ txtUploadTarget.setEditable(false);
+ txtUploadTarget.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.txtUploadTarget.text")); // NOI18N
+ txtUploadTarget.setPreferredSize(new java.awt.Dimension(200, 28));
+ txtUploadTarget.setRequestFocusEnabled(false);
+ jPanel7.add(txtUploadTarget);
+
+ jPanel9.add(jPanel7, java.awt.BorderLayout.WEST);
+
+ btnBrowseUploadTarget.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.btnBrowseUploadTarget.text")); // NOI18N
+ btnBrowseUploadTarget.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnBrowseUploadTargetActionPerformed(evt);
+ }
+ });
+ jPanel8.add(btnBrowseUploadTarget);
+
+ jPanel9.add(jPanel8, java.awt.BorderLayout.EAST);
+
+ jPanel4.add(jPanel9, java.awt.BorderLayout.NORTH);
+
+ jPanel10.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 10, 1));
+ jPanel10.setPreferredSize(new java.awt.Dimension(100, 40));
+ jPanel10.setSize(new java.awt.Dimension(100, 32));
+ jPanel10.setLayout(new java.awt.BorderLayout());
+
+ jPanel11.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
+
+ btnUseIrodsHome.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.btnUseIrodsHome.text")); // NOI18N
+ btnUseIrodsHome.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnUseIrodsHomeActionPerformed(evt);
+ }
+ });
+ jPanel11.add(btnUseIrodsHome);
+
+ btnUseLastUpload.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.btnUseLastUpload.text")); // NOI18N
+ btnUseLastUpload.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnUseLastUploadActionPerformed(evt);
+ }
+ });
+ jPanel11.add(btnUseLastUpload);
+
+ jPanel10.add(jPanel11, java.awt.BorderLayout.EAST);
+
+ jPanel4.add(jPanel10, java.awt.BorderLayout.SOUTH);
+
+ jPanel1.add(jPanel4, java.awt.BorderLayout.NORTH);
+
+ jPanel5.setBorder(javax.swing.BorderFactory.createEmptyBorder(14, 4, 1, 4));
+ jPanel5.setPreferredSize(new java.awt.Dimension(462, 250));
+ jPanel5.setLayout(new java.awt.BorderLayout());
+
+ jLabel2.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.jLabel2.text")); // NOI18N
+ jPanel5.add(jLabel2, java.awt.BorderLayout.PAGE_START);
+
+ jScrollPane1.setPreferredSize(new java.awt.Dimension(454, 190));
+
+ tblFilesToUpload.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+ "File"
+ }
+ ) {
+ Class[] types = new Class [] {
+ java.lang.String.class
+ };
+ boolean[] canEdit = new boolean [] {
+ false
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return canEdit [columnIndex];
+ }
+ });
+ jScrollPane1.setViewportView(tblFilesToUpload);
+
+ jPanel5.add(jScrollPane1, java.awt.BorderLayout.CENTER);
+
+ jPanel3.setPreferredSize(new java.awt.Dimension(100, 25));
+ jPanel3.setLayout(new java.awt.BorderLayout());
+
+ jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 1, 1));
+
+ btnAddUploadFile.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.btnAddUploadFile.text")); // NOI18N
+ btnAddUploadFile.setPreferredSize(new java.awt.Dimension(22, 24));
+ btnAddUploadFile.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnAddUploadFileActionPerformed(evt);
+ }
+ });
+ jPanel6.add(btnAddUploadFile);
+
+ btnDeleteUploadFile.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.btnDeleteUploadFile.text")); // NOI18N
+ btnDeleteUploadFile.setPreferredSize(new java.awt.Dimension(22, 24));
+ btnDeleteUploadFile.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnDeleteUploadFileActionPerformed(evt);
+ }
+ });
+ jPanel6.add(btnDeleteUploadFile);
+
+ jPanel3.add(jPanel6, java.awt.BorderLayout.WEST);
+
+ jPanel5.add(jPanel3, java.awt.BorderLayout.SOUTH);
+
+ jPanel1.add(jPanel5, java.awt.BorderLayout.CENTER);
+
+ getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
+
+ jPanel2.setLayout(new java.awt.BorderLayout());
+
+ btnUploadNow.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.btnUploadNow.text")); // NOI18N
+ btnUploadNow.setEnabled(false);
+ btnUploadNow.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnUploadNowActionPerformed(evt);
+ }
+ });
+ jPanel12.add(btnUploadNow);
+
+ btnCancel.setText(org.openide.util.NbBundle.getMessage(UploadDialog.class, "UploadDialog.btnCancel.text")); // NOI18N
+ btnCancel.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnCancelActionPerformed(evt);
+ }
+ });
+ jPanel12.add(btnCancel);
+
+ jPanel2.add(jPanel12, java.awt.BorderLayout.EAST);
+
+ getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void btnBrowseUploadTargetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBrowseUploadTargetActionPerformed
+
+ IRODSFinderDialog irodsFinder = new IRODSFinderDialog(
+ idropGUI, false, idropGUI.getiDropCore());
+ irodsFinder.setTitle("Select iRODS Collection Upload Target");
+ irodsFinder.setSelectionType(IRODSFinderDialog.SelectionType.COLLS_ONLY_SELECTION_MODE);
+ irodsFinder.setLocation(
+ (int)this.getLocation().getX(), (int)this.getLocation().getY());
+ irodsFinder.setVisible(true);
+
+ String selectedPath = irodsFinder.getSelectedAbsolutePath();
+ if (selectedPath != null) {
+ txtUploadTarget.setText(selectedPath);
+ }
+ setUploadButtonState();
+ }//GEN-LAST:event_btnBrowseUploadTargetActionPerformed
+
+ private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
+ this.dispose();
+ }//GEN-LAST:event_btnCancelActionPerformed
+
+ private void btnUploadNowActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUploadNowActionPerformed
+ executeUpload();
+ this.dispose();
+ }//GEN-LAST:event_btnUploadNowActionPerformed
+
+ private void btnUseIrodsHomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUseIrodsHomeActionPerformed
+ String target = "";
+ if (idropGUI.getiDropCore().getIrodsAccount().isAnonymousAccount()) {
+ target = MiscIRODSUtils.computePublicDirectory(idropGUI.getiDropCore().getIrodsAccount());
+ } else {
+ target = MiscIRODSUtils.computeHomeDirectoryForIRODSAccount(idropGUI.getiDropCore().getIrodsAccount());
+ }
+ if (target != null) {
+ txtUploadTarget.setText(target);
+ }
+ setUploadButtonState();
+ }//GEN-LAST:event_btnUseIrodsHomeActionPerformed
+
+ private void btnUseLastUploadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUseLastUploadActionPerformed
+ String target = "";
+ // see if can find some get history in the transfer queue
+ try {
+ List<LocalIRODSTransfer> transfers = idropGUI.getiDropCore().getTransferManager().getRecentQueue();
+
+ // assuming most recent first
+ for (LocalIRODSTransfer transfer: transfers) {
+ // must check to match type, user, host, zone, & port
+ if ((transfer.getTransferType() == TransferType.PUT) &&
+ (transfer.getTransferUserName().equals(idropGUI.getiDropCore().getIrodsAccount().getUserName())) &&
+ (transfer.getTransferZone().equals(idropGUI.getiDropCore().getIrodsAccount().getZone())) &&
+ (transfer.getTransferPort() == idropGUI.getiDropCore().getIrodsAccount().getPort()) &&
+ (transfer.getTransferHost().equals(idropGUI.getiDropCore().getIrodsAccount().getHost()))) {
+ target = transfer.getIrodsAbsolutePath();
+ break;
+ }
+ }
+ } catch (JargonException ex) {
+ Exceptions.printStackTrace(ex);
+ }
+ if (target != null) {
+ txtUploadTarget.setText(target);
+ }
+ setUploadButtonState();
+ }//GEN-LAST:event_btnUseLastUploadActionPerformed
+
+ private void btnAddUploadFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddUploadFileActionPerformed
+ JFileChooser localFileChooser = new JFileChooser();
+ localFileChooser.setMultiSelectionEnabled(true);
+ localFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+ localFileChooser.setDialogTitle("Select Files to Upload");
+ localFileChooser.setLocation(
+ (int)this.getLocation().getX(), (int)this.getLocation().getY());
+ int returnVal = localFileChooser.showOpenDialog(this);
+
+ if (returnVal == JFileChooser.APPROVE_OPTION) {
+ File[] filesToUpload = localFileChooser.getSelectedFiles();
+ setFilesToUpload(filesToUpload);
+ setUploadButtonState();
+ }
+ }//GEN-LAST:event_btnAddUploadFileActionPerformed
+
+ private void btnDeleteUploadFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteUploadFileActionPerformed
+
+ int[] selectedRows = tblFilesToUpload.getSelectedRows();
+ int numRowsSelected = selectedRows.length;
+
+ // have to remove rows in reverse
+ for(int i=numRowsSelected-1; i>=0; i--) {
+ //for (int selectedRow: selectedRows) {
+ int selectedRow = selectedRows[i];
+ if (selectedRow >= 0) {
+ DefaultTableModel model = (DefaultTableModel) tblFilesToUpload.getModel();
+ model.removeRow(selectedRow);
+ }
+ }
+ }//GEN-LAST:event_btnDeleteUploadFileActionPerformed
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton btnAddUploadFile;
+ private javax.swing.JButton btnBrowseUploadTarget;
+ private javax.swing.JButton btnCancel;
+ private javax.swing.JButton btnDeleteUploadFile;
+ private javax.swing.JButton btnUploadNow;
+ private javax.swing.JButton btnUseIrodsHome;
+ private javax.swing.JButton btnUseLastUpload;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel10;
+ private javax.swing.JPanel jPanel11;
+ private javax.swing.JPanel jPanel12;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JPanel jPanel6;
+ private javax.swing.JPanel jPanel7;
+ private javax.swing.JPanel jPanel8;
+ private javax.swing.JPanel jPanel9;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTable tblFilesToUpload;
+ private javax.swing.JTextField txtUploadTarget;
+ // End of variables declaration//GEN-END:variables
+
+}
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.form
index 483783b..4aff5b0 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.form
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.form
@@ -1,316 +1,67 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<Form version="1.7" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+<Form version="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<NonVisualComponents>
- <Container class="javax.swing.JPopupMenu" name="searchTablePopupMenu">
- <AuxValues>
- <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="4"/>
- </AuxValues>
+ <Container class="javax.swing.JPopupMenu" name="jPopupMenu1">
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout">
<Property name="useNullLayout" type="boolean" value="true"/>
</Layout>
- <SubComponents>
- <MenuItem class="javax.swing.JMenuItem" name="menuItemShowInHierarchy">
- <Properties>
- <Property name="text" type="java.lang.String" value="Show in iRODS"/>
- <Property name="toolTipText" type="java.lang.String" value="Show this file or collection in the iRODS hierarchy"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="menuItemShowInHierarchyActionPerformed"/>
- </Events>
- </MenuItem>
- </SubComponents>
- </Container>
- <Component class="javax.swing.ButtonGroup" name="buttonGroupLandF">
- </Component>
- <Container class="javax.swing.JPanel" name="pnlInfoMetadata">
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- <SubComponents>
- <Component class="javax.swing.JLabel" name="lblMetadataInfo">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
- <Color blue="ff" green="0" id="blue" palette="1" red="0" type="palette"/>
- </Property>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/edit-4.png"/>
- </Property>
- <Property name="text" type="java.lang.String" value="iRODS AVU Metadata"/>
- </Properties>
- </Component>
- </SubComponents>
</Container>
- <Container class="javax.swing.JPanel" name="pnlInfoSharing">
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- <SubComponents>
- <Component class="javax.swing.JLabel" name="lblInfoSharing">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
- <Color blue="ff" green="0" id="blue" palette="1" red="0" type="palette"/>
- </Property>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/share.png"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Access Permissions and Tickets"/>
- </Properties>
- </Component>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlInfoReplication">
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- <SubComponents>
- <Component class="javax.swing.JLabel" name="lblMetadataInfo1">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
- <Color blue="ff" green="0" id="blue" palette="1" red="0" type="palette"/>
- </Property>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/edit-copy-3.png"/>
- </Property>
- <Property name="text" type="java.lang.String" value="File Replication"/>
- </Properties>
- </Component>
- </SubComponents>
- </Container>
- <Menu class="javax.swing.JMenuBar" name="jMenuBar1">
- <SubComponents>
- <Menu class="javax.swing.JMenu" name="jMenuFile">
- <Properties>
- <Property name="mnemonic" type="int" value="102"/>
- <Property name="text" type="java.lang.String" value="File"/>
- </Properties>
- <SubComponents>
- <MenuItem class="javax.swing.JMenuItem" name="jMenuItemClose">
- <Properties>
- <Property name="mnemonic" type="int" value="99"/>
- <Property name="text" type="java.lang.String" value="Close iDrop GUI"/>
- <Property name="toolTipText" type="java.lang.String" value="Close the iDrop GUI, leaving iDrop running "/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItemCloseActionPerformed"/>
- </Events>
- </MenuItem>
- <MenuItem class="javax.swing.JMenuItem" name="jMenuItemExit">
- <Properties>
- <Property name="mnemonic" type="int" value="120"/>
- <Property name="text" type="java.lang.String" value="Exit"/>
- <Property name="toolTipText" type="java.lang.String" value="Exit iDrop entirely"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItemExitActionPerformed"/>
- </Events>
- </MenuItem>
- </SubComponents>
- </Menu>
- <Menu class="javax.swing.JMenu" name="jMenuEdit">
- <Properties>
- <Property name="mnemonic" type="int" value="69"/>
- <Property name="text" type="java.lang.String" value="Edit"/>
- </Properties>
- </Menu>
- <Menu class="javax.swing.JMenu" name="jMenuView">
- <Properties>
- <Property name="mnemonic" type="int" value="86"/>
- <Property name="text" type="java.lang.String" value="View"/>
- </Properties>
- <SubComponents>
- <MenuItem class="javax.swing.JCheckBoxMenuItem" name="jCheckBoxMenuItemShowSourceTree">
- <Properties>
- <Property name="accelerator" type="javax.swing.KeyStroke" editor="org.netbeans.modules.form.editors.KeyStrokeEditor">
- <KeyStroke key="Shift+L"/>
- </Property>
- <Property name="mnemonic" type="int" value="76"/>
- <Property name="text" type="java.lang.String" value="Show Local"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jCheckBoxMenuItemShowSourceTreeActionPerformed"/>
- </Events>
- </MenuItem>
- <MenuItem class="javax.swing.JCheckBoxMenuItem" name="jCheckBoxMenuItemShowIrodsInfo">
- <Properties>
- <Property name="accelerator" type="javax.swing.KeyStroke" editor="org.netbeans.modules.form.editors.KeyStrokeEditor">
- <KeyStroke key="Shift+L"/>
- </Property>
- <Property name="mnemonic" type="int" value="73"/>
- <Property name="text" type="java.lang.String" value="Show iRODS Info"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jCheckBoxMenuItemShowIrodsInfoActionPerformed"/>
- </Events>
- </MenuItem>
- </SubComponents>
- </Menu>
- <Menu class="javax.swing.JMenu" name="jMenuTools">
- <Properties>
- <Property name="mnemonic" type="int" value="84"/>
- <Property name="text" type="java.lang.String" value="Tools"/>
- <Property name="toolTipText" type="java.lang.String" value="Tools and options for iDrop"/>
- </Properties>
- <SubComponents>
- <Menu class="javax.swing.JMenu" name="jMenuLookAndFeel">
- <Properties>
- <Property name="mnemonic" type="int" value="108"/>
- <Property name="text" type="java.lang.String" value="Set look and feel"/>
- <Property name="toolTipText" type="java.lang.String" value="Set the look and feel for the GUI"/>
- </Properties>
- <SubComponents>
- <MenuItem class="javax.swing.JRadioButtonMenuItem" name="jRadioButtonLookAndFeelDefault">
- <Properties>
- <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
- <ComponentRef name="buttonGroupLandF"/>
- </Property>
- <Property name="mnemonic" type="int" value="100"/>
- <Property name="selected" type="boolean" value="true"/>
- <Property name="text" type="java.lang.String" value="Default"/>
- <Property name="toolTipText" type="java.lang.String" value="Default system look an dfeel"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jRadioButtonLookAndFeelDefaultActionPerformed"/>
- </Events>
- </MenuItem>
- <MenuItem class="javax.swing.JRadioButtonMenuItem" name="jRadioButtonLookAndFeelNimbus">
- <Properties>
- <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
- <ComponentRef name="buttonGroupLandF"/>
- </Property>
- <Property name="mnemonic" type="int" value="110"/>
- <Property name="text" type="java.lang.String" value="Nimbus"/>
- <Property name="toolTipText" type="java.lang.String" value="Nimbus look and feel"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jRadioButtonLookAndFeelNimbusActionPerformed"/>
- </Events>
- </MenuItem>
- <MenuItem class="javax.swing.JRadioButtonMenuItem" name="jRadioButtonMenuItemMetal">
- <Properties>
- <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
- <ComponentRef name="buttonGroupLandF"/>
- </Property>
- <Property name="mnemonic" type="int" value="109"/>
- <Property name="text" type="java.lang.String" value="Metal"/>
- <Property name="toolTipText" type="java.lang.String" value="Metal look and feel"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jRadioButtonMenuItemMetalActionPerformed"/>
- </Events>
- </MenuItem>
- <MenuItem class="javax.swing.JRadioButtonMenuItem" name="jRadioButtonMenuItemMotif">
- <Properties>
- <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
- <ComponentRef name="buttonGroupLandF"/>
- </Property>
- <Property name="mnemonic" type="int" value="116"/>
- <Property name="text" type="java.lang.String" value="Motif"/>
- <Property name="toolTipText" type="java.lang.String" value="Motif look and feel"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jRadioButtonMenuItemMotifActionPerformed"/>
- </Events>
- </MenuItem>
- <MenuItem class="javax.swing.JRadioButtonMenuItem" name="jRadioButtonMenuItemGTK">
- <Properties>
- <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
- <ComponentRef name="buttonGroupLandF"/>
- </Property>
- <Property name="mnemonic" type="int" value="103"/>
- <Property name="text" type="java.lang.String" value="GTK"/>
- <Property name="toolTipText" type="java.lang.String" value="GTK look and feel"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jRadioButtonMenuItemGTKActionPerformed"/>
- </Events>
- </MenuItem>
- </SubComponents>
- </Menu>
- <MenuItem class="javax.swing.JMenuItem" name="jMenuItemConfig">
- <Properties>
- <Property name="mnemonic" type="int" value="112"/>
- <Property name="text" type="java.lang.String" value="Preferences"/>
- <Property name="toolTipText" type="java.lang.String" value="Set preferences"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItemConfigActionPerformed"/>
- </Events>
- </MenuItem>
- </SubComponents>
- </Menu>
- <Menu class="javax.swing.JMenu" name="jMenuHelp">
- <Properties>
- <Property name="text" type="java.lang.String" value="Help"/>
- </Properties>
- <SubComponents>
- <MenuItem class="javax.swing.JMenuItem" name="jMenuItemAbout">
- <Properties>
- <Property name="text" type="java.lang.String" value="About"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItemAboutActionPerformed"/>
- </Events>
- </MenuItem>
- </SubComponents>
- </Menu>
- </SubComponents>
- </Menu>
</NonVisualComponents>
<Properties>
- <Property name="defaultCloseOperation" type="int" value="2"/>
- <Property name="title" type="java.lang.String" value="iDrop - iRODS Cloud Browser"/>
+ <Property name="defaultCloseOperation" type="int" value="3"/>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[600, 600]"/>
+ <Dimension value="[622, 158]"/>
+ </Property>
+ <Property name="size" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[822, 158]"/>
</Property>
</Properties>
<SyntheticProperties>
- <SyntheticProperty name="menuBar" type="java.lang.String" value="jMenuBar1"/>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
</SyntheticProperties>
- <Events>
- <EventHandler event="windowClosed" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowClosed"/>
- </Events>
<AuxValues>
- <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
- <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
- <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,-17,0,0,4,69"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,0,0,0,3,-29"/>
</AuxValues>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
- <Container class="javax.swing.JPanel" name="iDropToolbar">
+ <Container class="javax.swing.JPanel" name="pnlMain">
<Properties>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[800, 400]"/>
+ <Dimension value="[622, 158]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[1077, 40]"/>
+ <Dimension value="[730, 635]"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="North"/>
+ <BorderConstraints direction="Center"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
- <Container class="javax.swing.JPanel" name="pnlToolbarSizer">
+ <Container class="javax.swing.JPanel" name="pnlMainToolbar">
+ <Properties>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[622, 131]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[834, 135]"/>
+ </Property>
+ </Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="North"/>
@@ -319,391 +70,539 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
- <Container class="javax.swing.JPanel" name="pnlTopToolbarSearchArea">
+ <Container class="javax.swing.JPanel" name="pnlMainToolbarIcons">
<Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="10" left="20" right="20" top="10"/>
+ </Border>
+ </Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[45, 50]"/>
+ <Dimension value="[622, 90]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[622, 90]"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
+ <BorderConstraints direction="North"/>
</Constraint>
</Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
<SubComponents>
- <Container class="javax.swing.JPanel" name="pnlSearchSizer">
+ <Component class="javax.swing.JButton" name="btnMainToolbarDownload">
<Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/icon_download.png"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarDownload.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="1" right="28" top="1"/>
+ </Border>
+ </Property>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="verticalTextPosition" type="int" value="3"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMainToolbarDownloadActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMainToolbarUpload">
+ <Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/icon_upload.png"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarUpload.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="1" right="28" top="1"/>
+ </Border>
+ </Property>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="verticalTextPosition" type="int" value="3"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMainToolbarUploadActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMainToolbarRefresh">
+ <Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/icon_refresh.png"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarRefresh.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="1" right="30" top="1"/>
+ </Border>
+ </Property>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="verticalTextPosition" type="int" value="3"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMainToolbarRefreshActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JSeparator" name="jSeparator1">
+ <Properties>
+ <Property name="orientation" type="int" value="1"/>
+ <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[34, 60]"/>
+ </Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[74, 30]"/>
+ <Dimension value="[34, 60]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[254, 50]"/>
+ <Dimension value="[34, 60]"/>
</Property>
</Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="South"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout">
- <Property name="alignment" type="int" value="2"/>
- </Layout>
- <SubComponents>
- <Component class="javax.swing.JLabel" name="lblMainSearch">
- <Properties>
- <Property name="text" type="java.lang.String" value="Search:"/>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[45, 40]"/>
- </Property>
- </Properties>
- </Component>
- <Component class="javax.swing.JComboBox" name="comboSearchType">
- <Properties>
- <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
- <StringArray count="3">
- <StringItem index="0" value="by name"/>
- <StringItem index="1" value="by tag"/>
- <StringItem index="2" value="by name and tag"/>
- </StringArray>
- </Property>
- <Property name="toolTipText" type="java.lang.String" value="Select the type of search to be carried out using the supplied search string"/>
- </Properties>
- </Component>
- <Component class="javax.swing.JTextField" name="txtMainSearch">
- <Properties>
- <Property name="columns" type="int" value="20"/>
- <Property name="toolTipText" type="java.lang.String" value="Search for files or tags"/>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[100, 30]"/>
- </Property>
- </Properties>
- <Events>
- <EventHandler event="keyPressed" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="txtMainSearchKeyPressed"/>
- </Events>
- </Component>
- <Component class="javax.swing.JButton" name="btnSearch">
- <Properties>
- <Property name="mnemonic" type="int" value="115"/>
- <Property name="text" type="java.lang.String" value="Search"/>
- <Property name="toolTipText" type="java.lang.String" value="Search iRODS based on the current view selected"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnSearchActionPerformed"/>
- </Events>
- </Component>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlLocalToggleSizer">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="West"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
- <SubComponents>
- <Component class="javax.swing.JToggleButton" name="toggleLocalFiles">
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMainToolbarCopy">
<Properties>
- <Property name="text" type="java.lang.String" value="&lt;&lt;&lt; Local Files"/>
- <Property name="toolTipText" type="java.lang.String" value="Browse the local file system."/>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/icon_replicate.png"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarCopy.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="actionCommand" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarCopy.actionCommand" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="1" right="24" top="1"/>
+ </Border>
+ </Property>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="verticalTextPosition" type="int" value="3"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMainToolbarCopyActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMainToolbarDelete">
+ <Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/icon_delete.png"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarDelete.text_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="1" right="20" top="1"/>
+ </Border>
+ </Property>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[81, 70]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[81, 70]"/>
+ </Property>
+ <Property name="verticalTextPosition" type="int" value="3"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMainToolbarDeleteActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMainToolbarInfo">
+ <Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/icon_editmetadata.png"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="1" right="24" top="1"/>
+ </Border>
+ </Property>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="label" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarInfo.label" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="verticalTextPosition" type="int" value="3"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMainToolbarInfoActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JSeparator" name="jSeparator3">
+ <Properties>
+ <Property name="orientation" type="int" value="1"/>
+ <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[34, 60]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[34, 60]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMainToolbarSync">
+ <Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/icon_synch.png"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarSync.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="1" right="28" top="1"/>
+ </Border>
+ </Property>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="verticalTextPosition" type="int" value="3"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMainToolbarSettings">
+ <Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/icon_settings.png"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarSettings.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder/>
+ </Border>
+ </Property>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[144, 10]"/>
+ <Dimension value="[58, 70]"/>
</Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[144, 10]"/>
+ <Dimension value="[58, 70]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[144, 30]"/>
+ <Dimension value="[58, 70]"/>
</Property>
+ <Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="&lt;&lt;&lt; Local Files "/>
- </AccessibilityProperties>
<Events>
- <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="toggleLocalFilesStateChanged"/>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="toggleLocalFilesActionPerformed"/>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMainToolbarSettingsActionPerformed"/>
</Events>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="North"/>
- </Constraint>
- </Constraints>
</Component>
</SubComponents>
</Container>
- <Container class="javax.swing.JPanel" name="pnlIrodsDetailsToggleSizer">
+ <Container class="javax.swing.JPanel" name="pnlMainToolbarSearch">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="2" left="10" right="10" top="2"/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[622, 45]"/>
+ </Property>
+ </Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="East"/>
+ <BorderConstraints direction="South"/>
</Constraint>
</Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
<SubComponents>
- <Component class="javax.swing.JToggleButton" name="toggleIrodsDetails">
+ <Component class="javax.swing.JLabel" name="lblBreadCrumb">
<Properties>
- <Property name="toolTipText" type="java.lang.String" value="Browse the local file system."/>
- <Property name="label" type="java.lang.String" value="iRODS Info &gt;&gt;&gt;&gt;"/>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.lblBreadCrumb.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder bottom="1" left="1" right="2" top="1"/>
+ </Border>
+ </Property>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[144, 10]"/>
+ <Dimension value="[110, 2000]"/>
</Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[144, 10]"/>
+ <Dimension value="[0, 0]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Container class="javax.swing.JPanel" name="pnlBreadCrumbNav">
+ <Properties>
+ <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[20, 20]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[20, 20]"/>
+ </Property>
+ </Properties>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ </Container>
+ <Component class="javax.swing.JSeparator" name="jSeparator2">
+ <Properties>
+ <Property name="orientation" type="int" value="1"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="txtMainToolbarSearchTerms">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Lucida Grande" size="14" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.txtMainToolbarSearchTerms.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.txtMainToolbarSearchTerms.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[144, 30]"/>
+ <Dimension value="[130, 45]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JButton" name="btnMainToolbarSearchFiles">
+ <Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/search_files.png"/>
+ </Property>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnMainToolbarSearchFiles.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[118, 40]"/>
</Property>
</Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value=""/>
- </AccessibilityProperties>
<Events>
- <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="toggleIrodsDetailsStateChanged"/>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="toggleIrodsDetailsActionPerformed"/>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnMainToolbarSearchFilesActionPerformed"/>
</Events>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="North"/>
- </Constraint>
- </Constraints>
</Component>
</SubComponents>
</Container>
</SubComponents>
</Container>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlIdropMain">
- <Properties>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[500, 300]"/>
- </Property>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout">
- <Property name="axis" type="int" value="3"/>
- </Layout>
- <SubComponents>
- <Container class="javax.swing.JSplitPane" name="jSplitPanelLocalRemote">
+ <Container class="javax.swing.JPanel" name="pnlMainIrodsTree">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="null"/>
- </Property>
- <Property name="dividerLocation" type="int" value="250"/>
- <Property name="dividerSize" type="int" value="30"/>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
+ <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
+ <EtchetBorder/>
+ </Border>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[0, 0]"/>
+ <Dimension value="[834, 360]"/>
</Property>
</Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
- <Container class="javax.swing.JPanel" name="pnlLocalTreeArea">
+ <Container class="javax.swing.JSplitPane" name="splitPanelTrees">
<Properties>
- <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
- <Color blue="66" green="ff" red="99" type="rgb"/>
- </Property>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
- <LineBorder/>
- </Border>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[0, 0]"/>
- </Property>
- <Property name="opaque" type="boolean" value="false"/>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[0, 0]"/>
+ <Dimension value="[834, 360]"/>
</Property>
</Properties>
<Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
- <JSplitPaneConstraints position="left"/>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
</Constraint>
</Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/>
<SubComponents>
- <Container class="javax.swing.JPanel" name="pnlLocalRoots">
+ <Container class="javax.swing.JScrollPane" name="scrollIrodsTree">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
+ <JSplitPaneConstraints position="right"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlLocalTreeArea">
<Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+ <Color blue="66" green="ff" red="99" type="rgb"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
+ <LineBorder/>
+ </Border>
+ </Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[0, 0]"/>
</Property>
+ <Property name="opaque" type="boolean" value="false"/>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[0, 0]"/>
+ </Property>
</Properties>
<Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="North"/>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
+ <JSplitPaneConstraints position="left"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
- <Container class="javax.swing.JScrollPane" name="scrollLocalDrives">
+ <Container class="javax.swing.JPanel" name="pnlLocalRoots">
<Properties>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[0, 0]"/>
</Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[300, 100]"/>
- </Property>
</Properties>
- <AuxValues>
- <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
- </AuxValues>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
+ <BorderConstraints direction="North"/>
</Constraint>
</Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
- <Component class="javax.swing.JList" name="listLocalDrives">
+ <Container class="javax.swing.JScrollPane" name="scrollLocalDrives">
<Properties>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
- <LineBorder/>
- </Border>
- </Property>
- <Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor">
- <StringArray count="0"/>
- </Property>
- <Property name="selectionMode" type="int" value="0"/>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="null"/>
</Property>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[0, 0]"/>
+ </Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[150, 200]"/>
+ <Dimension value="[300, 100]"/>
</Property>
- <Property name="visibleRowCount" type="int" value="4"/>
</Properties>
- </Component>
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JList" name="listLocalDrives">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.LineBorderInfo">
+ <LineBorder/>
+ </Border>
+ </Property>
+ <Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor">
+ <StringArray count="0"/>
+ </Property>
+ <Property name="selectionMode" type="int" value="0"/>
+ <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="null"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[150, 200]"/>
+ </Property>
+ <Property name="visibleRowCount" type="int" value="4"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlDrivesFiller">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ </Container>
</SubComponents>
</Container>
- <Container class="javax.swing.JPanel" name="pnlRefreshButton">
+ <Container class="javax.swing.JScrollPane" name="scrollLocalFileTree">
<Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+ <Color blue="ee" green="ee" id="Button.background" palette="3" red="ee" type="palette"/>
+ </Property>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="null"/>
+ </Property>
+ <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.scrollLocalFileTree.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="verticalScrollBarPolicy" type="int" value="22"/>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[1000, 30]"/>
+ <Dimension value="null"/>
</Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[0, 0]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[101, 30]"/>
+ <Dimension value="[500, 500]"/>
</Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="North"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- <SubComponents>
- <Component class="javax.swing.JButton" name="btnRefreshLocalDrives">
- <Properties>
- <Property name="label" type="java.lang.String" value="Refresh"/>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[200, 50]"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[0, 0]"/>
- </Property>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnRefreshLocalDrivesActionPerformed"/>
- </Events>
- </Component>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlDrivesFiller">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="South"/>
+ <BorderConstraints direction="Center"/>
</Constraint>
</Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
</Container>
</SubComponents>
</Container>
- <Container class="javax.swing.JScrollPane" name="scrollLocalFileTree">
- <Properties>
- <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
- <Color blue="ee" green="ee" id="Button.background" palette="3" red="ee" type="palette"/>
- </Property>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="null"/>
- </Property>
- <Property name="toolTipText" type="java.lang.String" value="scroll panel tooltip"/>
- <Property name="verticalScrollBarPolicy" type="int" value="22"/>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[0, 0]"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[500, 500]"/>
- </Property>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
- </Container>
</SubComponents>
</Container>
- <Container class="javax.swing.JPanel" name="pnlIrodsArea">
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlMainTransferStatus">
+ <Properties>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[835, 120]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="South"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="pnlIdropBottom">
<Properties>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[500, 300]"/>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.BevelBorderInfo">
+ <BevelBorder bevelType="1"/>
+ </Border>
</Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[600, 304]"/>
+ <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.pnlIdropBottom.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[166, 66]"/>
</Property>
</Properties>
<Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
- <JSplitPaneConstraints position="right"/>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
</Constraint>
</Constraints>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
- <Container class="javax.swing.JSplitPane" name="splitTargetCollections">
+ <Container class="javax.swing.JPanel" name="pnlCurrentTransferStatus">
<Properties>
- <Property name="dividerLocation" type="int" value="400"/>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[0, 0]"/>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
+ <EmptyBorder/>
+ </Border>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[62, 62]"/>
</Property>
</Properties>
<Constraints>
@@ -712,848 +611,181 @@
</Constraint>
</Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
<SubComponents>
- <Container class="javax.swing.JTabbedPane" name="tabIrodsViews">
+ <Component class="javax.swing.JLabel" name="lblCurrentFile">
<Properties>
+ <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[999, 999]"/>
+ </Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[200, 129]"/>
+ <Dimension value="[30, 10]"/>
</Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[350, 300]"/>
+ <Dimension value="[300, 20]"/>
</Property>
</Properties>
- <Events>
- <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="tabIrodsViewsStateChanged"/>
- </Events>
<Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
- <JSplitPaneConstraints position="left"/>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="3" gridY="0" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="9" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
- <SubComponents>
- <Container class="javax.swing.JPanel" name="pnlTabHierarchicalView">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
- <JTabbedPaneConstraints tabName="iRODS Tree View">
- <Property name="tabTitle" type="java.lang.String" value="iRODS Tree View"/>
- </JTabbedPaneConstraints>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
- <SubComponents>
- <Container class="javax.swing.JPanel" name="pnlIrodsTreeToolbar">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="North"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- <SubComponents>
- <Container class="javax.swing.JToolBar" name="toolbarIrodsTree">
- <Properties>
- <Property name="floatable" type="boolean" value="false"/>
- <Property name="rollover" type="boolean" value="true"/>
- </Properties>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
- <SubComponents>
- <Component class="javax.swing.JButton" name="btnRefreshTargetTree">
- <Properties>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/recur.png"/>
- </Property>
- <Property name="mnemonic" type="int" value="114"/>
- <Property name="text" type="java.lang.String" value="Refresh"/>
- <Property name="toolTipText" type="java.lang.String" value="Refresh the view of the iRODS server"/>
- <Property name="focusable" type="boolean" value="false"/>
- <Property name="horizontalTextPosition" type="int" value="0"/>
- <Property name="verticalTextPosition" type="int" value="3"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnRefreshTargetTreeActionPerformed"/>
- </Events>
- </Component>
- <Component class="javax.swing.JButton" name="btnGoHomeTargetTree">
- <Properties>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/go-home-4.png"/>
- </Property>
- <Property name="mnemonic" type="int" value="104"/>
- <Property name="text" type="java.lang.String" value="Home"/>
- <Property name="toolTipText" type="java.lang.String" value="Go to the user home directory on the iRODS grid"/>
- <Property name="focusable" type="boolean" value="false"/>
- <Property name="horizontalTextPosition" type="int" value="0"/>
- <Property name="verticalTextPosition" type="int" value="3"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnGoHomeTargetTreeActionPerformed"/>
- </Events>
- </Component>
- <Component class="javax.swing.JButton" name="btnGoRootTargetTree">
- <Properties>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/go-parent-folder.png"/>
- </Property>
- <Property name="mnemonic" type="int" value="116"/>
- <Property name="text" type="java.lang.String" value="Top"/>
- <Property name="toolTipText" type="java.lang.String" value="Go to the top of the iRODS tree"/>
- <Property name="focusable" type="boolean" value="false"/>
- <Property name="horizontalTextPosition" type="int" value="0"/>
- <Property name="verticalTextPosition" type="int" value="3"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnGoRootTargetTreeActionPerformed"/>
- </Events>
- </Component>
- <Component class="javax.swing.JButton" name="btnSetRootCustomTargetTree">
- <Properties>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/go-jump.png"/>
- </Property>
- <Property name="mnemonic" type="int" value="99"/>
- <Property name="text" type="java.lang.String" value="Custom Root"/>
- <Property name="toolTipText" type="java.lang.String" value="Set the root of the tree to a custom path"/>
- <Property name="focusable" type="boolean" value="false"/>
- <Property name="horizontalTextPosition" type="int" value="0"/>
- <Property name="verticalTextPosition" type="int" value="3"/>
- </Properties>
- </Component>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlIrodsTreeMaster">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
- <SubComponents>
- <Container class="javax.swing.JScrollPane" name="scrollIrodsTree">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
- </Container>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlTabSearch">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Search for files and collections in iRODS and display search results"/>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
- <JTabbedPaneConstraints tabName="Search" toolTip="Search for files and collections in iRODS and display search results">
- <Property name="tabTitle" type="java.lang.String" value="Search"/>
- <Property name="tabToolTip" type="java.lang.String" value="Search for files and collections in iRODS and display search results"/>
- </JTabbedPaneConstraints>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
- <SubComponents>
- <Container class="javax.swing.JPanel" name="pnlTabSearchTop">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="North"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlTabSearchResults">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout">
- <Property name="columns" type="int" value="0"/>
- <Property name="rows" type="int" value="1"/>
- </Layout>
- <SubComponents>
- <Container class="javax.swing.JScrollPane" name="scrollPaneSearchResults">
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
- <SubComponents>
- <Component class="javax.swing.JTable" name="tableSearchResults">
- <Properties>
- <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
- <Table columnCount="4" rowCount="4">
- <Column editable="true" title="Title 1" type="java.lang.Object"/>
- <Column editable="true" title="Title 2" type="java.lang.Object"/>
- <Column editable="true" title="Title 3" type="java.lang.Object"/>
- <Column editable="true" title="Title 4" type="java.lang.Object"/>
- </Table>
- </Property>
- </Properties>
- </Component>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlIrodsInfo">
+ </Component>
+ <Component class="javax.swing.JProgressBar" name="progressIntraFile">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
- <EmptyBorder bottom="10" left="15" right="15" top="10"/>
+ <EmptyBorder bottom="1" left="3" right="1" top="1"/>
</Border>
</Property>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[10, 60]"/>
+ </Property>
+ <Property name="string" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.progressIntraFile.string" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="stringPainted" type="boolean" value="true"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="2" gridY="1" gridWidth="4" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblTransferFilesCounts">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.lblTransferFilesCounts.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="2" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JProgressBar" name="transferStatusProgressBar">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="null"/>
+ </Property>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[10, 60]"/>
+ </Property>
+ <Property name="string" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.transferStatusProgressBar.string" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="stringPainted" type="boolean" value="true"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="2" gridY="2" gridWidth="4" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="8.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblTransferType">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="2" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblTransferMessage">
+ <Properties>
+ <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
+ <Color blue="ff" green="0" id="blue" palette="1" red="0" type="palette"/>
+ </Property>
</Properties>
<Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout$JSplitPaneConstraintsDescription">
- <JSplitPaneConstraints position="right"/>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="2" gridY="3" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
</Constraint>
</Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblTransferByteCounts">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.lblTransferByteCounts.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="pnlTransferOptions">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Upload Options">
+ <ResourceString PropertyName="titleX" bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.pnlTransferOptions.border.title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </TitledBorder>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
+ <BorderConstraints direction="East"/>
+ </Constraint>
+ </Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JToolBar" name="idropProgressPanelToolbar">
+ <Properties>
+ <Property name="floatable" type="boolean" value="false"/>
+ <Property name="rollover" type="boolean" value="true"/>
+ </Properties>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
<SubComponents>
- <Container class="javax.swing.JTabbedPane" name="tabInfo">
+ <Component class="javax.swing.JButton" name="btnShowTransferManager">
+ <Properties>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/configure-5.png"/>
+ </Property>
+ <Property name="mnemonic" type="int" value="109"/>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnShowTransferManager.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.btnShowTransferManager.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="focusable" type="boolean" value="false"/>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="verticalTextPosition" type="int" value="3"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnShowTransferManagerActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JToggleButton" name="togglePauseTransfer">
<Properties>
- <Property name="toolTipText" type="java.lang.String" value="View basic demographics for a file or collection"/>
+ <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
+ <Image iconType="3" name="/media-playback-pause-7.png"/>
+ </Property>
+ <Property name="mnemonic" type="int" value="112"/>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.togglePauseTransfer.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/desktop/systraygui/Bundle.properties" key="iDrop.togglePauseTransfer.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ <Property name="focusable" type="boolean" value="false"/>
+ <Property name="horizontalTextPosition" type="int" value="0"/>
+ <Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Info"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
- <SubComponents>
- <Container class="javax.swing.JScrollPane" name="jScrollPane1">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
- <JTabbedPaneConstraints tabName="Info">
- <Property name="tabTitle" type="java.lang.String" value="Info"/>
- </JTabbedPaneConstraints>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
- <SubComponents>
- <Container class="javax.swing.JPanel" name="pnlInfoInner">
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
- <SubComponents>
- <Container class="javax.swing.JPanel" name="pnlInfoIcon">
- <Properties>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[50, 50]"/>
- </Property>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="2" gridY="1" gridWidth="3" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="0" insetsBottom="2" insetsRight="2" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout">
- <Property name="columns" type="int" value="0"/>
- <Property name="rows" type="int" value="1"/>
- </Layout>
- <SubComponents>
- <Component class="javax.swing.JLabel" name="jLabel1">
- <Properties>
- <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
- <Color blue="cc" green="0" red="ff" type="rgb"/>
- </Property>
- </Properties>
- </Component>
- </SubComponents>
- </Container>
- <Component class="javax.swing.JLabel" name="lblSelectedFileInfo">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
- <Color blue="ff" green="0" id="blue" palette="1" red="0" type="palette"/>
- </Property>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/help-contents.png"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Selected File Info"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label indicating panel for selected file info"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="0" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="10" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblFilePathLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Path:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Path Label"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for file Path"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="2" gridY="2" gridWidth="2" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblFileOrCollectionName">
- <Properties>
- <Property name="text" type="java.lang.String" value="file or collection name "/>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[900, 100]"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[80, 30]"/>
- </Property>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Abbreviated file name "/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="File name of selected file or collection (abbreviated if necessary with elipses)"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="2" gridY="3" gridWidth="2" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="2" insetsBottom="5" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblComment">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Comment:"/>
- <Property name="toolTipText" type="java.lang.String" value=""/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="lable for comment area"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="4" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Container class="javax.swing.JScrollPane" name="scrollComment">
- <Properties>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="scroll box for file comment"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Scroll box for file comment"/>
- </AccessibilityProperties>
- <AuxValues>
- <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
- </AuxValues>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="5" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.2"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
- <SubComponents>
- <Component class="javax.swing.JTextArea" name="txtComment">
- <Properties>
- <Property name="columns" type="int" value="30"/>
- <Property name="rows" type="int" value="6"/>
- <Property name="tabSize" type="int" value="5"/>
- <Property name="toolTipText" type="java.lang.String" value="Free form comment for a file or collection"/>
- <Property name="wrapStyleWord" type="boolean" value="true"/>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Comment"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Comment for a file"/>
- </AccessibilityProperties>
- </Component>
- </SubComponents>
- </Container>
- <Component class="javax.swing.Box$Filler" name="filler4">
- <Properties>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 32767]"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 0]"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 0]"/>
- </Property>
- </Properties>
- <AuxValues>
- <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalStrut"/>
- </AuxValues>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="6" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblTags">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Tags:"/>
- <Property name="toolTipText" type="java.lang.String" value=""/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Tags"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for free tagging area"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="6" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JTextField" name="txtTags">
- <Properties>
- <Property name="columns" type="int" value="30"/>
- <Property name="toolTipText" type="java.lang.String" value="Name of file or collection. This field allows editing to rename"/>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- </Properties>
- <Events>
- <EventHandler event="focusLost" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="txtTagsFocusLost"/>
- <EventHandler event="keyPressed" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="txtTagsKeyPressed"/>
- </Events>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="7" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JButton" name="btnUpdateInfo">
- <Properties>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/dialog-accept.png"/>
- </Property>
- <Property name="mnemonic" type="int" value="117"/>
- <Property name="text" type="java.lang.String" value="Update Comment and Tags"/>
- <Property name="toolTipText" type="java.lang.String" value="Update information on the info panel such as tags and comment"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnUpdateInfoActionPerformed"/>
- </Events>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="8" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Container class="javax.swing.JPanel" name="pnlFileInfoDemographics">
- <Properties>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="org.netbeans.modules.form.compat2.border.BevelBorderInfo">
- <BevelBorder bevelType="1"/>
- </Border>
- </Property>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="9" gridWidth="2" gridHeight="2" fill="1" ipadX="0" ipadY="0" insetsTop="8" insetsLeft="2" insetsBottom="6" insetsRight="2" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
- <SubComponents>
- <Component class="javax.swing.JLabel" name="lblInfoCreatedAt">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="horizontalAlignment" type="int" value="11"/>
- <Property name="text" type="java.lang.String" value="Created:"/>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="0" insetsBottom="2" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoCreatedAtValue">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="5" insetsBottom="5" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoCreatedAtTimeValue">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Time file was created"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Created at time"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="time fiel was created"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="3" gridY="0" gridWidth="3" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="5" insetsBottom="5" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoUpdatedAt">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="horizontalAlignment" type="int" value="11"/>
- <Property name="text" type="java.lang.String" value="Updated:"/>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="3" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="2" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoUpdatedAtValue">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="1" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="7" insetsBottom="2" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoUpdatedAtTimeValue">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Time file was last updated"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Updated at time"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="3" gridY="1" gridWidth="3" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="2" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoLength">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="horizontalAlignment" type="int" value="11"/>
- <Property name="text" type="java.lang.String" value="Length:"/>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="4" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="2" insetsLeft="0" insetsBottom="2" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoLengthValue">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="4" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="5" insetsBottom="2" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoChecksum">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="horizontalAlignment" type="int" value="11"/>
- <Property name="text" type="java.lang.String" value="Checksum:"/>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="20" insetsLeft="0" insetsBottom="2" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblInfoChecksumValue">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="3" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="20" insetsLeft="5" insetsBottom="2" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblOwnerNameLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Owner:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for file or collection owner name"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="3" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="20" insetsLeft="15" insetsBottom="2" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblOwnerName">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="4" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="20" insetsLeft="2" insetsBottom="2" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblOwnerZoneLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Owner Zone:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Owner Zone"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="label for owner zone"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="3" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="26" insetsBottom="2" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblOwnerZone">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Zone of file owner"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Owner Zone"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="4" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="2" insetsBottom="2" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblCollectionTypeLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Collection Type:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Collection Type"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for collection type"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="5" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="15" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblCollectionType">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Collection type"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Collection type"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Type of collection"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="5" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="15" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataPathLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Data Path:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for data path"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="13" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="20" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataPath">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Physical path of file"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Data Path"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Physical path of the data file"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="13" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="20" insetsLeft="0" insetsBottom="0" insetsRight="10" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataReplicationStatusLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Replication Status:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Label for data replication status"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for data replication status"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="3" gridY="10" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="10" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataReplicationStatus">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Data replication status"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Data Replication Status"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Status of replication of this data object"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="4" gridY="10" gridWidth="7" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="10" insetsLeft="2" insetsBottom="0" insetsRight="10" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataVersionLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Data Version:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Data Version Label"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for data version"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="10" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="10" insetsLeft="0" insetsBottom="2" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataVersion">
- <Properties>
- <Property name="text" type="java.lang.String" value="jLabel2"/>
- <Property name="toolTipText" type="java.lang.String" value="Data version"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Data Version"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Version of data"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="10" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="10" insetsLeft="2" insetsBottom="0" insetsRight="10" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataTypeLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Data Type:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Data Type Label"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for data type"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="11" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataType">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Data type for selected file"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Data Type"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="1" gridY="11" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="10" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataStatusLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Data Status:"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Data Status label"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Label for data status"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="3" gridY="11" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDataStatus">
- <Properties>
- <Property name="toolTipText" type="java.lang.String" value="Status of selected file"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Data status"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="4" gridY="11" gridWidth="4" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="4" insetsBottom="0" insetsRight="10" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="togglePauseTransferActionPerformed"/>
+ </Events>
+ </Component>
</SubComponents>
</Container>
+ <Component class="javax.swing.JLabel" name="progressIconImageLabel">
+ </Component>
</SubComponents>
</Container>
</SubComponents>
@@ -1562,384 +794,5 @@
</Container>
</SubComponents>
</Container>
- <Container class="javax.swing.JPanel" name="pnlIdropBottom">
- <Properties>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="org.netbeans.modules.form.compat2.border.BevelBorderInfo">
- <BevelBorder bevelType="1"/>
- </Border>
- </Property>
- <Property name="toolTipText" type="java.lang.String" value="Display area for status and messages"/>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="South"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
- <SubComponents>
- <Container class="javax.swing.JPanel" name="pnlBottomGutter">
- <Properties>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="org.netbeans.modules.form.compat2.border.BevelBorderInfo">
- <BevelBorder bevelType="1"/>
- </Border>
- </Property>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[2147483647, 10]"/>
- </Property>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Current Grid Panel"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Panel Showing the Current iRODS Grid"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="South"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
- <SubComponents>
- <Container class="javax.swing.JPanel" name="pnlHostInfo">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="West"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- <SubComponents>
- <Component class="javax.swing.JLabel" name="lblUserNameLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="User Name:"/>
- </Properties>
- </Component>
- <Component class="javax.swing.JLabel" name="userNameLabel">
- <Properties>
- <Property name="text" type="java.lang.String" value="usernamelabel"/>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- </Properties>
- </Component>
- <Component class="javax.swing.Box$Filler" name="filler1">
- <Properties>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 32767]"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 0]"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 0]"/>
- </Property>
- </Properties>
- <AuxValues>
- <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalStrut"/>
- </AuxValues>
- </Component>
- <Component class="javax.swing.JLabel" name="lblZoneLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Zone:"/>
- </Properties>
- </Component>
- <Component class="javax.swing.JLabel" name="lblZone">
- <Properties>
- <Property name="text" type="java.lang.String" value="this is the zone"/>
- </Properties>
- </Component>
- <Component class="javax.swing.Box$Filler" name="filler2">
- <Properties>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 32767]"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 0]"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 0]"/>
- </Property>
- </Properties>
- <AuxValues>
- <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalStrut"/>
- </AuxValues>
- </Component>
- <Component class="javax.swing.JLabel" name="lblHostLabel">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Host:"/>
- </Properties>
- </Component>
- <Component class="javax.swing.JLabel" name="lblHost">
- <Properties>
- <Property name="text" type="java.lang.String" value="this is the host"/>
- </Properties>
- </Component>
- <Component class="javax.swing.Box$Filler" name="filler3">
- <Properties>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 32767]"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 0]"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 0]"/>
- </Property>
- </Properties>
- <AuxValues>
- <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalStrut"/>
- </AuxValues>
- </Component>
- <Component class="javax.swing.JLabel" name="lblDefaultResource">
- <Properties>
- <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
- <Font name="Lucida Grande" size="13" style="1"/>
- </Property>
- <Property name="text" type="java.lang.String" value="Default Storage Resource:"/>
- </Properties>
- </Component>
- <Component class="javax.swing.JComboBox" name="comboDefaultResource">
- <Properties>
- <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
- <StringArray count="0"/>
- </Property>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Default resource selection"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Selection options for the default storage resource"/>
- </AccessibilityProperties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="comboDefaultResourceActionPerformed"/>
- </Events>
- </Component>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlStatusIcon">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="East"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- <SubComponents>
- <Component class="javax.swing.JButton" name="btnManageGrids">
- <Properties>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/im-user.png"/>
- </Property>
- <Property name="mnemonic" type="int" value="83"/>
- <Property name="label" type="java.lang.String" value="Switch Grid Account"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Switch the grid or iRODS account information"/>
- </AccessibilityProperties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnManageGridsActionPerformed"/>
- </Events>
- </Component>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlCurrentTransferStatus">
- <Properties>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
- <EmptyBorder/>
- </Border>
- </Property>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Current Transfer Status Panel"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Panel Describing the stete of the current transfer"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="Center"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
- <SubComponents>
- <Component class="javax.swing.JLabel" name="lblCurrentFile">
- <Properties>
- <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[999, 999]"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[30, 10]"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[500, 20]"/>
- </Property>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="3" gridY="0" gridWidth="0" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="9" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JProgressBar" name="progressIntraFile">
- <Properties>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="null"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 60]"/>
- </Property>
- <Property name="string" type="java.lang.String" value=""/>
- <Property name="stringPainted" type="boolean" value="true"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Progress bar for total bytes transferred"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Total progress for the current file (in bytes)"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="2" gridY="1" gridWidth="4" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblTransferFilesCounts">
- <Properties>
- <Property name="text" type="java.lang.String" value="Total Progress:"/>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="2" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JProgressBar" name="transferStatusProgressBar">
- <Properties>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="null"/>
- </Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="[10, 60]"/>
- </Property>
- <Property name="string" type="java.lang.String" value=""/>
- <Property name="stringPainted" type="boolean" value="true"/>
- </Properties>
- <AccessibilityProperties>
- <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="Progress bar for the total number of files in this transfer so far"/>
- <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" value="Progress of the transfer, showing what percentage of files have been transferred"/>
- </AccessibilityProperties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="2" gridY="2" gridWidth="4" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="8.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblTransferType">
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="2" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblTransferMessage">
- <Properties>
- <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
- <Color blue="ff" green="0" id="blue" palette="1" red="0" type="palette"/>
- </Property>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="2" gridY="3" gridWidth="0" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- <Component class="javax.swing.JLabel" name="lblTransferByteCounts">
- <Properties>
- <Property name="text" type="java.lang.String" value="Current File:"/>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
- <GridBagConstraints gridX="0" gridY="1" gridWidth="2" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
- </Constraint>
- </Constraints>
- </Component>
- </SubComponents>
- </Container>
- <Container class="javax.swing.JPanel" name="pnlTransferOptions">
- <Properties>
- <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
- <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
- <TitledBorder title="Upload Options"/>
- </Border>
- </Property>
- </Properties>
- <Constraints>
- <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
- <BorderConstraints direction="East"/>
- </Constraint>
- </Constraints>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
- <SubComponents>
- <Container class="javax.swing.JToolBar" name="idropProgressPanelToolbar">
- <Properties>
- <Property name="floatable" type="boolean" value="false"/>
- <Property name="rollover" type="boolean" value="true"/>
- </Properties>
-
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"/>
- <SubComponents>
- <Component class="javax.swing.JButton" name="btnShowTransferManager">
- <Properties>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/configure-5.png"/>
- </Property>
- <Property name="mnemonic" type="int" value="109"/>
- <Property name="text" type="java.lang.String" value="Manage"/>
- <Property name="toolTipText" type="java.lang.String" value="Show a panel to manage transfers"/>
- <Property name="focusable" type="boolean" value="false"/>
- <Property name="horizontalTextPosition" type="int" value="0"/>
- <Property name="verticalTextPosition" type="int" value="3"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnShowTransferManagerActionPerformed"/>
- </Events>
- </Component>
- <Component class="javax.swing.JToggleButton" name="togglePauseTransfer">
- <Properties>
- <Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
- <Image iconType="3" name="/media-playback-pause-7.png"/>
- </Property>
- <Property name="mnemonic" type="int" value="112"/>
- <Property name="text" type="java.lang.String" value="Pause"/>
- <Property name="toolTipText" type="java.lang.String" value="Pause the current transfer"/>
- <Property name="focusable" type="boolean" value="false"/>
- <Property name="horizontalTextPosition" type="int" value="0"/>
- <Property name="verticalTextPosition" type="int" value="3"/>
- </Properties>
- <Events>
- <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="togglePauseTransferActionPerformed"/>
- </Events>
- </Component>
- </SubComponents>
- </Container>
- <Component class="javax.swing.JLabel" name="progressIconImageLabel">
- </Component>
- </SubComponents>
- </Container>
- </SubComponents>
- </Container>
</SubComponents>
</Form>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.java
index 4d69541..da68da4 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.java
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.java
@@ -1,13 +1,13 @@
/*
- * IDrop.java
- *
- * Created on May 20, 2010, 2:59:48 PM
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
*/
package org.irods.jargon.idrop.desktop.systraygui;
import java.awt.AWTException;
import java.awt.CheckboxMenuItem;
import java.awt.Cursor;
+import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.MenuItem;
@@ -19,42 +19,39 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
import java.io.File;
import java.net.URL;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Enumeration;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
-
-import javax.swing.*;
+import javax.swing.DefaultListModel;
+import javax.swing.ImageIcon;
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
+import javax.swing.plaf.basic.BasicArrowButton;
import javax.swing.tree.TreePath;
-
+import javax.swing.tree.TreeSelectionModel;
import org.irods.jargon.core.connection.IRODSAccount;
import org.irods.jargon.core.exception.JargonException;
-import org.irods.jargon.core.pub.*;
-import org.irods.jargon.core.pub.domain.Collection;
-import org.irods.jargon.core.pub.domain.DataObject;
+import org.irods.jargon.core.pub.CollectionAndDataObjectListAndSearchAO;
+import org.irods.jargon.core.pub.EnvironmentalInfoAO;
import org.irods.jargon.core.pub.io.IRODSFile;
import org.irods.jargon.core.query.CollectionAndDataObjectListingEntry;
-import org.irods.jargon.core.query.MetaDataAndDomainData;
-import org.irods.jargon.core.query.MetaDataAndDomainData.MetadataDomain;
import org.irods.jargon.core.transfer.TransferStatus;
import org.irods.jargon.core.utils.MiscIRODSUtils;
+import org.irods.jargon.idrop.desktop.systraygui.services.IRODSFileService;
import org.irods.jargon.idrop.desktop.systraygui.services.IdropConfigurationService;
import org.irods.jargon.idrop.desktop.systraygui.utils.FieldFormatHelper;
import org.irods.jargon.idrop.desktop.systraygui.utils.IDropUtils;
-import org.irods.jargon.idrop.desktop.systraygui.utils.IconHelper;
import org.irods.jargon.idrop.desktop.systraygui.utils.LocalFileUtils;
import org.irods.jargon.idrop.desktop.systraygui.utils.LookAndFeelManager;
import org.irods.jargon.idrop.desktop.systraygui.utils.TreeUtils;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.BreadCrumbNavigationPopup;
+import org.irods.jargon.idrop.desktop.systraygui.viscomponents.FileSystemModel;
import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSFileSystemModel;
import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSNode;
import org.irods.jargon.idrop.desktop.systraygui.viscomponents.IRODSOutlineModel;
@@ -67,47 +64,36 @@ import org.irods.jargon.idrop.desktop.systraygui.viscomponents.LocalFileSystemMo
import org.irods.jargon.idrop.desktop.systraygui.viscomponents.LocalFileTree;
import org.irods.jargon.idrop.exceptions.IdropException;
import org.irods.jargon.idrop.exceptions.IdropRuntimeException;
+import org.irods.jargon.idrop.finder.FinderDeleteIRODSDialog;
+import org.irods.jargon.idrop.finder.IRODSFinderDialog;
+import org.irods.jargon.transfer.engine.TransferManager;
import org.irods.jargon.transfer.engine.TransferManager.ErrorStatus;
import org.irods.jargon.transfer.engine.TransferManager.RunningStatus;
import org.irods.jargon.transfer.engine.TransferManagerCallbackListener;
-import org.irods.jargon.usertagging.FreeTaggingService;
-import org.irods.jargon.usertagging.FreeTaggingServiceImpl;
-import org.irods.jargon.usertagging.IRODSTaggingService;
-import org.irods.jargon.usertagging.IRODSTaggingServiceImpl;
-import org.irods.jargon.usertagging.domain.IRODSTagGrouping;
-import org.irods.jargon.usertagging.domain.IRODSTagValue;
-import org.irods.jargon.usertagging.domain.TagQuerySearchResult;
import org.netbeans.swing.outline.Outline;
+import org.openide.util.Exceptions;
import org.slf4j.LoggerFactory;
/**
- * Main system tray and GUI. Create system tray menu, start timer process for queue.
*
- * @author Mike Conway - DICE (www.irods.org)
+ * @author Lisa Stillwell
*/
public class iDrop extends javax.swing.JFrame implements ActionListener,
ItemListener, TransferManagerCallbackListener {
- private static final long serialVersionUID = 1L;
+ private IDROPCore iDropCore = new IDROPCore();
+ private IRODSTree irodsTree = null;
+ private LocalFileTree fileTree = null;
private LocalFileSystemModel localFileModel = null;
private static final org.slf4j.Logger log = LoggerFactory.getLogger(iDrop.class);
- private boolean formShown = false;
- private LocalFileTree fileTree = null;
- private IRODSTree irodsTree = null;
- private QueueManagerDialog queueManagerDialog = null;
- private IDROPCore iDropCore = new IDROPCore();
- private CheckboxMenuItem pausedItem = null;
+ private boolean receivedStartupSignal = false;
private TrayIcon trayIcon = null;
private Object lastCachedInfoItem = null;
- public DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
+ private CheckboxMenuItem pausedItem = null;
private ChangePasswordDialog changePasswordDialog = null;
- public static JDialog newPreferencesDialog;
- public JCheckBox showGUICheckBox;
- public JButton preferencesDialogOKButton;
- private static SimpleDateFormat SDF = new SimpleDateFormat("MM-dd-yyyy");
- private static SimpleDateFormat STF = new SimpleDateFormat("hh:mm:ss");
- private boolean receivedStartupSignal = false;
- private ImageIcon pnlIdropProgressIcon = null;
+ private QueueManagerDialog queueManagerDialog = null;
+ private boolean formShown = false;
+ private BasicArrowButton btnBreadCrumbNav;
public iDrop(final IDROPCore idropCore) {
@@ -125,25 +111,60 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
public iDrop() {
}
+ protected void showIdropGui() {
+
+ if (scrollIrodsTree == null) {
+ buildIdropGuiComponents();
+ }
+
+ initializeLookAndFeelSelected();
+
+ if (irodsTree == null) {
+ buildTargetTree(false);
+ }
+
+ setUpLocalFileSelectTree();
+ splitPanelTrees.setDividerLocation(0.0d);
+// togglePauseTransfer.setSelected(pausedItem.getState());
+// TransferManager.RunningStatus status = iDropCore.getTransferManager().getRunningStatus();
+// iDropCore.getIconManager().setRunningStatus(status);
+// iDropCore.getIconManager().setErrorStatus(
+// iDropCore.getTransferManager().getErrorStatus());
+// if (status == TransferManager.RunningStatus.PROCESSING) {
+// setUpTransferPanel(true);
+// } else {
+// setUpTransferPanel(false);
+// }
+//
+// setUpAccountGutter();
+
+ setVisibleComponentsAtStartup();
+
+ enableToolbarButtons(false);
+
+ setVisible(true);
+
+ }
+
protected void buildIdropGuiComponents() throws IdropRuntimeException,
HeadlessException {
initComponents();
- this.pnlLocalTreeArea.setVisible(false);
- this.pnlIrodsInfo.setVisible(false);
- this.splitTargetCollections.setResizeWeight(0.8d);
- try {
- pnlIrodsInfo.setTransferHandler(new InfoPanelTransferHandler(this));
- } catch (IdropException ex) {
- Logger.getLogger(iDrop.class.getName()).log(Level.SEVERE, null, ex);
- throw new IdropRuntimeException(
- "error setting up infoPanelTransferHandler", ex);
- }
-
- tableSearchResults.setModel(new IRODSSearchTableModel());
- MouseListener popupListener = new PopupListener();
- // add the listener specifically to the header
- tableSearchResults.addMouseListener(popupListener);
- tableSearchResults.getTableHeader().addMouseListener(popupListener);
+// this.pnlLocalTreeArea.setVisible(false);
+// this.pnlIrodsInfo.setVisible(false);
+ this.splitPanelTrees.setResizeWeight(0.8d);
+// try {
+//// pnlIrodsInfo.setTransferHandler(new InfoPanelTransferHandler(this));
+//// } catch (IdropException ex) {
+//// Logger.getLogger(iDrop.class.getName()).log(Level.SEVERE, null, ex);
+//// throw new IdropRuntimeException(
+//// "error setting up infoPanelTransferHandler", ex);
+//// }
+//
+//// tableSearchResults.setModel(new IRODSSearchTableModel());
+//// MouseListener popupListener = new PopupListener();
+//// // add the listener specifically to the header
+//// tableSearchResults.addMouseListener(popupListener);
+//// tableSearchResults.getTableHeader().addMouseListener(popupListener);
Toolkit t = getToolkit();
int width = t.getScreenSize().width;
@@ -157,42 +178,18 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
log.warn("no account, exiting");
System.exit(0);
}
+
+ // add breadcrumb navigation button
+ btnBreadCrumbNav = new BasicArrowButton(BasicArrowButton.SOUTH);
+ btnBreadCrumbNav.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnBreadCrumbNavActionPerformed(evt);
+ }
+ });
+ pnlBreadCrumbNav.add(btnBreadCrumbNav);
- userNameLabel.setText("User: "
- + getiDropCore().getIrodsAccount().getUserName());
-
- }
-
- protected void showIdropGui() {
-
- if (fileTree == null) {
- buildIdropGuiComponents();
- }
-
- initializeLookAndFeelSelected();
-
- if (irodsTree == null) {
- buildTargetTree(false);
- }
- // setting look and feel will also trigger build of irods tree view
- //setLookAndFeel(iDropCore.getIdropConfig().getPropertyForKey(IdropConfigurationService.LOOK_AND_FEEL));
- setUpLocalFileSelectTree();
- togglePauseTransfer.setSelected(pausedItem.getState());
- RunningStatus status = iDropCore.getTransferManager().getRunningStatus();
- iDropCore.getIconManager().setRunningStatus(status);
- iDropCore.getIconManager().setErrorStatus(
- iDropCore.getTransferManager().getErrorStatus());
- if (status == RunningStatus.PROCESSING) {
- setUpTransferPanel(true);
- } else {
- setUpTransferPanel(false);
- }
-
- setUpAccountGutter();
-
- setVisibleComponentsAtStartup();
-
- setVisible(true);
+// userNameLabel.setText("User: "
+// + getiDropCore().getIrodsAccount().getUserName());
}
@@ -200,7 +197,6 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
final iDrop thisPanel = this;
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
@@ -221,12 +217,11 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
}
/**
- * Startup exit to set visibility of components in iDrop GUI at startup. Here is where the
- * initial visible status of components can be specified.
+ * Startup exit to set visibility of components in iDrop GUI at startup.
+ * Here is where the initial visible status of components can be specified.
*/
private void setVisibleComponentsAtStartup() {
- this.btnSetRootCustomTargetTree.setVisible(false);
-
+// this.btnSetRootCustomTargetTree.setVisible(false);
}
protected void signalIdropCoreReadyAndSplashComplete() {
@@ -245,256 +240,210 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
}
- @Override
- public synchronized void transferManagerErrorStatusUpdate(
- final ErrorStatus es) {
- iDropCore.getIconManager().setErrorStatus(es);
- }
-
- @Override
- public synchronized void transferManagerRunningStatusUpdate(
- final RunningStatus rs) {
- iDropCore.getIconManager().setRunningStatus(rs);
- if (rs == RunningStatus.PAUSED) {
- this.setTransferStatePaused();
- } else {
- this.setTransferStateUnpaused();
+ private void initializeLookAndFeelSelected() {
+ String lookAndFeelChoice = iDropCore.getIdropConfig().getPropertyForKey(IdropConfigurationService.LOOK_AND_FEEL);
+ if (lookAndFeelChoice == null || lookAndFeelChoice.isEmpty()) {
+ lookAndFeelChoice = "System";
}
+// if (lookAndFeelChoice.equals("Metal")) {
+//
+// this.jRadioButtonMenuItemMetal.setSelected(true);
+//
+// } else if (lookAndFeelChoice.equals("System")) {
+//
+// this.jRadioButtonLookAndFeelDefault.setSelected(true);
+// } else if (lookAndFeelChoice.equals("Motif")) {
+//
+// this.jRadioButtonMenuItemMotif.setSelected(true);
+// } else if (lookAndFeelChoice.equals("GTK")) {
+//
+// this.jRadioButtonMenuItemGTK.setSelected(true);
+// } else if (lookAndFeelChoice.equals("Nimbus")) {
+// this.jRadioButtonLookAndFeelNimbus.setSelected(true);
+//
+// } else {
+// this.jRadioButtonLookAndFeelDefault.setSelected(true);
+// }
}
- /**
- * Status callback per file, or intra-file, from the transfer manager
- *
- * @param ts
- */
- @Override
- public void statusCallback(final TransferStatus ts) {
-
- log.info("transfer status callback to iDROP:{}", ts);
- final iDrop idrop = this;
-
- java.awt.EventQueue.invokeLater(new Runnable() {
-
- @Override
- public void run() {
-
- if (ts.getTransferState() == TransferStatus.TransferState.FAILURE) {
- // an error occurs, stop the transfer
- log.error("error occurred in transfer: {}", ts);
- if (ts.getTransferException() == null) {
- idrop.showMessageFromOperation("An error occurred in the transfer, this transfer will be cancelled");
- } else {
- idrop.showIdropException(ts.getTransferException());
- }
-
- } else if (ts.isIntraFileStatusReport()) {
-
- log.debug("transferred so far:{}", ts.getBytesTransfered());
- log.debug("total bytes:{}", ts.getTotalSize());
- float rawPct = (float) ts.getBytesTransfered() / ts.getTotalSize();
- int percentDone = (int) (rawPct * 100F);
- log.info("pct done:{}", percentDone);
-
- progressIntraFile.setValue(percentDone);
- progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
-
- } else if (ts.getTransferState() == TransferStatus.TransferState.IN_PROGRESS_START_FILE) {
-
- // start of a file operation
- progressIntraFile.setMinimum(0);
- progressIntraFile.setMaximum(100);
- progressIntraFile.setValue(0);
- lblCurrentFile.setText(IDropUtils.abbreviateFileName(ts.getSourceFileAbsolutePath()));
- transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
- progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
-
- } else if (ts.getTransferState() == TransferStatus.TransferState.IN_PROGRESS_COMPLETE_FILE) {
-
- progressIntraFile.setValue(100);
-
- transferStatusProgressBar.setMaximum(ts.getTotalFilesToTransfer());
- transferStatusProgressBar.setValue(ts.getTotalFilesTransferredSoFar());
- transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
- progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
-
- } else {
+ private void setLookAndFeel(String lookAndFeelChoice) {
- transferStatusProgressBar.setMaximum(ts.getTotalFilesToTransfer());
- transferStatusProgressBar.setValue(ts.getTotalFilesTransferredSoFar());
- transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
- progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
- lblCurrentFile.setText(IDropUtils.abbreviateFileName(ts.getSourceFileAbsolutePath()));
- }
- }
- });
+ int result = JOptionPane.showConfirmDialog(this,
+ "Changing the look and feel requires a restart, would you like to change the look and feel?",
+ "iDrop - Confirm change look and feel",
+ JOptionPane.OK_CANCEL_OPTION);
+ if (result == JOptionPane.CANCEL_OPTION) {
+ return;
+ }
- }
+ String lookAndFeel = "";
+ if (lookAndFeelChoice == null) {
+ lookAndFeelChoice = "System";
+ }
- /**
- * Be able to do things to the transfer panel
- *
- * @param isBegin
- */
- private void setUpTransferPanel(boolean isBegin) {
- if (isBegin) {
- pnlCurrentTransferStatus.setVisible(true);
- } else {
- pnlCurrentTransferStatus.setVisible(true);
+ if (lookAndFeelChoice != null) {
+// if (lookAndFeelChoice.equals("Metal")) {
+// lookAndFeel = lookAndFeelChoice;
+// this.jRadioButtonMenuItemMetal.setSelected(true);
+// // an alternative way to set the Metal L&F is to replace the
+// // previous line with:
+// // lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
+//
+// } else if (lookAndFeelChoice.equals("System")) {
+// lookAndFeel = lookAndFeelChoice;
+// this.jRadioButtonLookAndFeelDefault.setSelected(true);
+// } else if (lookAndFeelChoice.equals("Motif")) {
+// lookAndFeel = lookAndFeelChoice;
+// this.jRadioButtonMenuItemMotif.setSelected(true);
+// } else if (lookAndFeelChoice.equals("GTK")) {
+// lookAndFeel = lookAndFeelChoice;
+// this.jRadioButtonMenuItemGTK.setSelected(true);
+// } else if (lookAndFeelChoice.equals("Nimbus")) {
+// this.jRadioButtonLookAndFeelNimbus.setSelected(true);
+// lookAndFeel = lookAndFeelChoice;
+// } else {
+// lookAndFeel = "System";
+//
+// }
+// try {
+// LookAndFeelManager laf = new LookAndFeelManager(iDropCore);
+// laf.setLookAndFeel(lookAndFeel);
+// shutdown();
+// } catch (Exception e) {
+// log.warn("unable to set look and feel to :{}", lookAndFeel);
+// }
}
}
- /**
- * Implementation of transfer manager callback. The overall status callback represents the start
- * and completion of a transfer operation
- *
- * @param ts
- */
- @Override
- public void overallStatusCallback(final TransferStatus ts) {
-
- final IRODSOutlineModel irodsTreeModel = (IRODSOutlineModel) irodsTree.getModel();
- final iDrop idropGui = this;
+ public void buildTargetTree(final boolean reset) {
+ log.info("building tree to look at staging resource");
+ final iDrop gui = this;
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
+ gui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_INITIATION || ts.getTransferState() == TransferStatus.TransferState.SYNCH_INITIALIZATION) {
- transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
- progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
- idropGui.setUpTransferPanel(true);
- } else if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_COMPLETION || ts.getTransferState() == TransferStatus.TransferState.SYNCH_COMPLETION) {
- idropGui.setUpTransferPanel(false);
- }
-
- /*
- * Handle appropriate tree notifications, so some filtering to prevent notifications
- * when for a different host/zone
- */
- if (ts.getTransferType() == TransferStatus.TransferType.SYNCH || ts.getTransferType() == TransferStatus.TransferType.REPLICATE) {
- log.info("no need to notify tree for synch or replicate");
- } else if (ts.getTransferType() == TransferStatus.TransferType.GET
- && ts.getTransferState() == TransferStatus.TransferState.OVERALL_COMPLETION) {
- try {
- ((LocalFileSystemModel) idropGui.getFileTree().getModel()).notifyCompletionOfOperation(idropGui.getFileTree(), ts);
-
- } catch (IdropException ex) {
- log.error("error on tree notify after operation", ex);
- throw new IdropRuntimeException("error processing overall status callback", ex);
- }
- } else if (ts.getTransferType() == TransferStatus.TransferType.COPY || ts.getTransferType() == TransferStatus.TransferType.PUT) {
- if (ts.getTransferZone().equals(
- iDropCore.getIrodsAccount().getZone()) && ts.getTransferHost().equals(iDropCore.getIrodsAccount().getHost())) {
- try {
- // should leave PUT, and COPY
- irodsTreeModel.notifyCompletionOfOperation(irodsTree, ts);
- } catch (IdropException ex) {
- log.error("error on tree notify after operation", ex);
- throw new IdropRuntimeException("error processing overall status callback", ex);
+ IRODSOutlineModel mdl = null;
+ log.info("building new iRODS tree");
+ try {
+ if (getTreeStagingResource() != null) {
+ if (reset) {
+ loadNewTree();
+ } else {
+ reloadExistingTree();
}
+ } else {
+ loadNewTree();
}
+ } catch (Exception ex) {
+ Logger.getLogger(iDrop.class.getName()).log(Level.SEVERE,
+ null, ex);
+ throw new IdropRuntimeException(ex);
+ } finally {
+ getiDropCore().getIrodsFileSystem().closeAndEatExceptions(
+ iDropCore.getIrodsAccount());
+ gui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
+ }
- /*
- * Handle progress bar and messages. These are cleared on overall initiation
- */
- if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_INITIATION || ts.getTransferState() == TransferStatus.TransferState.SYNCH_INITIALIZATION) {
- clearProgressBar();
- // on initiation, clear and reset the status bar info
- lblTransferType.setText(ts.getTransferType().name());
- transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
- progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
- lblCurrentFile.setText(IDropUtils.abbreviateFileName(ts.getSourceFileAbsolutePath()));
- transferStatusProgressBar.setMinimum(0);
- transferStatusProgressBar.setMaximum(ts.getTotalFilesToTransfer());
- transferStatusProgressBar.setValue(0);
+ /**
+ * A tree has not been previosly loaded, establish the root (strict
+ * ACLs? Login preset?)
+ */
+ private void loadNewTree() throws JargonException, IdropException {
+ IRODSOutlineModel mdl;
+ TreePath[] currentPaths = null;
+ CollectionAndDataObjectListingEntry root = new CollectionAndDataObjectListingEntry();
+ String basePath = getBasePath();
+ log.info("base path set to:{}", basePath);
+ if (basePath.equals("/")) {
+ root.setPathOrName(basePath);
+ root.setObjectType(CollectionAndDataObjectListingEntry.ObjectType.COLLECTION);
+ } else {
+ IRODSFile baseFile = iDropCore.getIRODSFileFactoryForLoggedInAccount().instanceIRODSFile(basePath);
+ root.setParentPath(baseFile.getParent());
+ root.setPathOrName(baseFile.getAbsolutePath());
+ root.setObjectType(CollectionAndDataObjectListingEntry.ObjectType.COLLECTION);
}
- /*
- * Handle any text messages
- */
- if (ts.getTransferState() == TransferStatus.TransferState.SYNCH_INITIALIZATION) {
- lblTransferMessage.setText("Synchronization Initializing");
- } else if (ts.getTransferState() == TransferStatus.TransferState.SYNCH_DIFF_GENERATION) {
- lblTransferMessage.setText("Synchronization looking for updates");
- } else if (ts.getTransferState() == TransferStatus.TransferState.SYNCH_DIFF_STEP) {
- lblTransferMessage.setText("Synchronizing differences");
- } else if (ts.getTransferState() == TransferStatus.TransferState.SYNCH_COMPLETION) {
- lblTransferMessage.setText("Synchronization complete");
- } else if (ts.getTransferEnclosingType() == TransferStatus.TransferType.SYNCH) {
- lblTransferMessage.setText("Transfer to synchronize local and iRODS");
- } else if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_INITIATION) {
- // initiation not within a synch
- lblTransferMessage.setText("Processing a " + ts.getTransferType().name() + " operation");
- }
+ irodsTree = new IRODSTree(gui);
+ IRODSNode rootNode = new IRODSNode(root,
+ getIrodsAccount(), getiDropCore().getIrodsFileSystem(), irodsTree);
+ irodsTree.setRefreshingTree(true);
+ IRODSFileSystemModel irodsFileSystemModel = new IRODSFileSystemModel(
+ rootNode, getIrodsAccount());
+ mdl = new IRODSOutlineModel(gui,
+ irodsFileSystemModel, new IRODSRowModel(), true,
+ "File System");
+ irodsTree.setModel(mdl);
+ scrollIrodsTree.setViewportView(irodsTree);
}
- });
- }
-
- /**
- * Display an error message dialog that indicates an exception has occcurred
- *
- * @param idropException
- */
- public void showIdropException(final Exception idropException) {
- JOptionPane.showMessageDialog(this, idropException.getMessage(),
- "iDROP Exception", JOptionPane.WARNING_MESSAGE);
- }
-
- /**
- * Utility method to display a dialog with a message.
- *
- * @param messageFromOperation
- */
- public void showMessageFromOperation(final String messageFromOperation) {
-
- final iDrop thisIdropGui = this;
- java.awt.EventQueue.invokeLater(new Runnable() {
- @Override
- public void run() {
- JOptionPane.showMessageDialog(thisIdropGui,
- messageFromOperation, "iDROP Message",
- JOptionPane.INFORMATION_MESSAGE);
+ /**
+ * A tree already exists so use the current information to reload
+ */
+ private void reloadExistingTree() throws IdropException, JargonException {
+ IRODSNode currentRoot = (IRODSNode) irodsTree.getOutlineModel().getRoot();
+ log.debug("current tree root:{}", currentRoot);
+ TreePath rootPath = TreeUtils.getPath(currentRoot);
+ TreePath[] currentPaths = irodsTree.getOutlineModel().getTreePathSupport().getExpandedDescendants(rootPath);
+ log.info("expanded paths:{}", currentPaths);
+ int startIdx = irodsTree.getSelectionModel().getMinSelectionIndex();
+ int endIdx = irodsTree.getSelectionModel().getMaxSelectionIndex();
+ scrollIrodsTree.getViewport().removeAll();
+ irodsTree = null;
+ loadNewTree();
+ irodsTree.getSelectionModel().setSelectionInterval(0, 0);
+ if (currentPaths != null) {
+ IRODSNode irodsNode = null;
+ TreePath pathOfExpandingNode = null;
+ CollectionAndDataObjectListingEntry expandedEntry = null;
+ log.info("looking to re-expand paths...");
+ for (TreePath treePath : currentPaths) {
+ irodsNode = (IRODSNode) treePath.getLastPathComponent();
+ expandedEntry = (CollectionAndDataObjectListingEntry) irodsNode.getUserObject();
+ irodsNode = (IRODSNode) TreeUtils.buildTreePathForIrodsAbsolutePath(irodsTree, expandedEntry.getFormattedAbsolutePath()).getLastPathComponent();
+ irodsNode.getChildCount();
+ TreePath pathInNew = TreeUtils.getPath(irodsNode);
+ irodsTree.collapsePath(pathInNew);
+ irodsTree.expandPath(pathInNew);
+ java.awt.Rectangle rect = irodsTree.getPathBounds(treePath);
+ if (rect != null) {
+ irodsTree.scrollRectToVisible(rect);
+ //irodsTree.getSelectionModel().setSelectionInterval(startIdx, endIdx);
+ }
+ }
+ }
}
});
}
/**
- * Update the system tray icon based on the current status.
- *
- * @param iconFile
+ * Method to clear any cached values when an account changes. Some data is
+ * cached and lazily loaded. Rebuilds gui state for new grid.
*/
- public void updateIcon(final String iconFile) {
+ public void reinitializeForChangedIRODSAccount() {
+ log.info("clearing any cached data associated with the account");
+ final iDrop idropGui = this;
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
-
- /*
- * listener events may occur at startup before the GUI is fully prepared, ignore
- * these
- */
- if (trayIcon == null) {
- return;
- }
-
- Image newIcon = createImage(iconFile, "icon");
-
- trayIcon.setImage(newIcon);
-
- if (pnlIdropProgressIcon != null) {
- progressIconImageLabel.setIcon(new ImageIcon(newIcon));
-
- }
+ lastCachedInfoItem = null;
+ idropGui.buildTargetTree(true);
+// idropGui.toggleIrodsDetails.setSelected(false);
+// handleInfoPanelShowOrHide();
+ getiDropCore().setBasePath(null);
+ setUpAccountGutter();
}
});
+
}
/**
- * Builds the system tray menu and installs the iDrop icon in the system tray. The iDrop GUI is
- * displayed when the iDrop menu item is selected from the system tray
+ * Builds the system tray menu and installs the iDrop icon in the system
+ * tray. The iDrop GUI is displayed when the iDrop menu item is selected
+ * from the system tray
*/
protected void createAndShowSystemTray() {
if (!SystemTray.isSupported()) {
@@ -542,7 +491,7 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
* See if I am in a paused state
*/
- if (this.getiDropCore().getTransferManager().getRunningStatus() == RunningStatus.PAUSED) {
+ if (this.getiDropCore().getTransferManager().getRunningStatus() == TransferManager.RunningStatus.PAUSED) {
this.setTransferStatePaused();
}
@@ -573,7 +522,8 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
}
/**
- * Returns an ImageIcon, or null if the path was invalid. FIXME: move to static util
+ * Returns an ImageIcon, or null if the path was invalid. FIXME: move to
+ * static util
*/
protected static Image createImage(final String path,
final String description) {
@@ -590,8 +540,8 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
/**
* Get the current iRODS login account.
*
- * @return
- * <code>IRODSAccount</code> with the current iRODS connection information.
+ * @return <code>IRODSAccount</code> with the current iRODS connection
+ * information.
*/
public IRODSAccount getIrodsAccount() {
synchronized (this) {
@@ -602,8 +552,8 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
/**
* Set the current connection information.
*
- * @return
- * <code>IRODSAccount</code> with the current iRODS connection information.
+ * @return <code>IRODSAccount</code> with the current iRODS connection
+ * information.
*/
public void setIrodsAccount(final IRODSAccount irodsAccount) {
synchronized (this) {
@@ -612,6 +562,246 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
}
/**
+ * Returns the current iRODS remote tree view component.
+ *
+ * @return <code>JTree</code> visual representation of the remote iRODS
+ * resource
+ */
+ public Outline getTreeStagingResource() {
+ return irodsTree;
+ }
+
+ public IDROPCore getiDropCore() {
+ return iDropCore;
+ }
+
+ public void setBusyCursor() {
+ this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ }
+
+ public void setNormalCursor() {
+ this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
+
+ public LocalFileTree getFileTree() {
+ return fileTree;
+ }
+
+ public void setFileTree(final LocalFileTree fileTree) {
+ this.fileTree = fileTree;
+ }
+
+ /**
+ * Set the account information in the gutter, including the available
+ * resources on the grid. Note that this method should be called in the
+ * context of a
+ * <code>Runnable</code>
+ */
+ private void setUpAccountGutter() {
+// userNameLabel.setText(this.getIrodsAccount().getUserName());
+// lblZone.setText(this.getIrodsAccount().getZone());
+// lblHost.setText(this.getIrodsAccount().getHost());
+// /*
+// * Get a list of storage resources on this host
+// */
+// try {
+// ResourceAO resourceAO = this.getiDropCore().getIRODSAccessObjectFactory().getResourceAO(this.getIrodsAccount());
+// log.info("getting a list of all resources in the zone");
+// List<String> resources = new ArrayList<String>();
+// resources.add("");
+// resources.addAll(resourceAO.listResourceAndResourceGroupNames());
+// comboDefaultResource.setModel(new DefaultComboBoxModel(resources.toArray()));
+// comboDefaultResource.setSelectedItem(this.getIrodsAccount().getDefaultStorageResource());
+// } catch (JargonException ex) {
+// log.error("error getting resource list", ex);
+// throw new IdropRuntimeException("error getting resource list", ex);
+// }
+ }
+
+ /**
+ * Establish base path (checking if strict acl's are in place.
+ *
+ * @return <code>String</code> with the base path for the tree
+ * @throws JargonException
+ */
+ private synchronized String getBasePath() throws JargonException {
+ String myBase = this.getiDropCore().getBasePath();
+
+ // if no base defined, see if there is a prese
+ if (myBase == null) {
+
+ if (this.getiDropCore().getIrodsAccount().isAnonymousAccount()) {
+ log.info("user is anonymous, default to view the public directory");
+ myBase = MiscIRODSUtils.computePublicDirectory(this.getiDropCore().getIrodsAccount());
+
+ } else {
+
+ if (iDropCore.getIdropConfig().isLoginPreset()) {
+ log.info("using policy preset home directory");
+ StringBuilder sb = new StringBuilder();
+ sb.append("/");
+ sb.append(getIrodsAccount().getZone());
+ sb.append("/");
+ sb.append("home");
+ myBase = sb.toString();
+ } else {
+ // look up the strict acl setting for the server, if strict acl, home the person in their user directory
+ EnvironmentalInfoAO environmentalInfoAO = this.getiDropCore().getIRODSAccessObjectFactory().getEnvironmentalInfoAO(getiDropCore().getIrodsAccount());
+ boolean isStrict = environmentalInfoAO.isStrictACLs();
+ log.info("is strict?:{}", isStrict);
+
+ if (isStrict) {
+ myBase = MiscIRODSUtils.computeHomeDirectoryForIRODSAccount(iDropCore.getIrodsAccount());
+ } else {
+ myBase = "/";
+ }
+
+ }
+ }
+ }
+ getiDropCore().setBasePath(myBase);
+ return myBase;
+
+ }
+
+ /**
+ * Get the JTree component that represents the iRODS file system in the
+ * iDrop gui.
+ *
+ * @return <code>IRODSTree</code> that is the JTree component for the iRODS
+ * file system view.
+ */
+ public IRODSTree getIrodsTree() {
+ return irodsTree;
+ }
+
+ /**
+ * Set up a JTree that depicts the local file system
+ */
+ private void setUpLocalFileSelectTree() {
+
+ /*
+ * build a list of the roots (e.g. drives on windows systems). If there is only one, use it
+ * as the basis for the file model, otherwise, display an additional panel listing the other
+ * roots, and build the tree for the first drive encountered.
+ */
+
+ if (fileTree != null) {
+ log.info("file tree already initialized");
+ return;
+ }
+
+ log.info("building tree to look at local file system");
+ final iDrop gui = this;
+
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+
+ initializeLocalFileTreeModel(null);
+ fileTree = new LocalFileTree(localFileModel, gui);
+ listLocalDrives.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ @Override
+ public void valueChanged(final ListSelectionEvent e) {
+ if (e.getValueIsAdjusting()) {
+ return;
+ }
+
+ log.debug("new local file system model");
+ log.debug("selection event:{}", e);
+ Object selectedItem = listLocalDrives.getSelectedValue();
+ initializeLocalFileTreeModelWhenDriveIsSelected(selectedItem);
+
+ }
+ });
+ scrollLocalFileTree.setViewportView(fileTree);
+ pnlLocalTreeArea.add(scrollLocalFileTree,
+ java.awt.BorderLayout.CENTER);
+ }
+ });
+
+ }
+
+ private void initializeLocalFileTreeModelWhenDriveIsSelected(
+ final Object selectedDrive) {
+ if (selectedDrive == null) {
+ log.debug("selected drive is null, use the first one");
+ listLocalDrives.setSelectedIndex(0);
+
+ localFileModel = new LocalFileSystemModel(new LocalFileNode(
+ new File((String) listLocalDrives.getSelectedValue())));
+
+ fileTree.setModel(localFileModel);
+ } else {
+ log.debug(
+ "selected drive is not null, create new root based on selection",
+ selectedDrive);
+ listLocalDrives.setSelectedValue(selectedDrive, true);
+ localFileModel = new LocalFileSystemModel(new LocalFileNode(
+ new File((String) selectedDrive)));
+ fileTree.setModel(localFileModel);
+
+ }
+
+ scrollLocalDrives.setVisible(true);
+ }
+
+ private void initializeLocalFileTreeModel(final Object selectedDrive) {
+ List<String> roots = LocalFileUtils.listFileRootsForSystem();
+
+ if (roots.isEmpty()) {
+ IdropException ie = new IdropException(
+ "unable to find any roots on the local file system");
+ log.error("error building roots on local file system", ie);
+ showIdropException(ie);
+ return;
+ } else if (roots.size() == 1) {
+ scrollLocalDrives.setVisible(false);
+ localFileModel = new LocalFileSystemModel(new LocalFileNode(
+ new File(roots.get(0))));
+
+ } else {
+ DefaultListModel listModel = new DefaultListModel();
+ for (String root : roots) {
+ listModel.addElement(root);
+ }
+
+ listLocalDrives.setModel(listModel);
+
+ scrollLocalDrives.setVisible(true);
+ }
+ }
+
+ /**
+ * Display an error message dialog that indicates an exception has occcurred
+ *
+ * @param idropException
+ */
+ public void showIdropException(final Exception idropException) {
+ JOptionPane.showMessageDialog(this, idropException.getMessage(),
+ "iDROP Exception", JOptionPane.WARNING_MESSAGE);
+ }
+
+ /**
+ * Utility method to display a dialog with a message.
+ *
+ * @param messageFromOperation
+ */
+ public void showMessageFromOperation(final String messageFromOperation) {
+
+ final iDrop thisIdropGui = this;
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ JOptionPane.showMessageDialog(thisIdropGui,
+ messageFromOperation, "iDROP Message",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ });
+ }
+
+ /**
* Handler for iDrop system tray menu options.
*
* @param e
@@ -692,66 +882,6 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
return false;
}
- public TrayIcon getTrayIcon() {
- return trayIcon;
- }
-
- public void setTrayIcon(final TrayIcon trayIcon) {
- this.trayIcon = trayIcon;
- trayIcon.setImageAutoSize(true);
- }
-
- /**
- * A transfer confirm dialog
- *
- * @param sourcePath
- * <code>String</code> with the source path of the transfer
- * @param targetPath
- * <code>String</code> with the target of the transfer
- * @return
- * <code>int</code> with the dialog user response.
- */
- public int showTransferConfirm(final String sourcePath,
- final String targetPath) {
-
- StringBuilder sb = new StringBuilder();
- sb.append("Would you like to transfer from ");
- sb.append(sourcePath);
- sb.append(" to ");
- sb.append(targetPath);
-
- // default icon, custom title
- int n = JOptionPane.showConfirmDialog(this, sb.toString(),
- "Transfer Confirmaiton", JOptionPane.YES_NO_OPTION);
-
- return n;
- }
-
- /**
- * A dialog to indicate that the queue should start processing
- */
- public int showTransferStartupConfirm() {
-
- // default icon, custom title
- int n = JOptionPane.showConfirmDialog(
- this,
- "There are transfers ready to process, should the transfer queue be started? Click NO to pause the transfersf",
- "Begin Transfer Confirmation",
- JOptionPane.YES_NO_OPTION);
-
- return n;
- }
-
- /**
- * Returns the current iRODS remote tree view component.
- *
- * @return
- * <code>JTree</code> visual representation of the remote iRODS resource
- */
- public Outline getTreeStagingResource() {
- return irodsTree;
- }
-
/**
* Indicate that the GUI should reflect a paused state
*
@@ -761,9 +891,9 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
pausedItem.setState(true);
}
- if (togglePauseTransfer != null) {
- this.togglePauseTransfer.setSelected(true);
- }
+// if (togglePauseTransfer != null) {
+// this.togglePauseTransfer.setSelected(true);
+// }
}
/**
@@ -774,9 +904,9 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
pausedItem.setState(false);
}
- if (togglePauseTransfer != null) {
- this.togglePauseTransfer.setSelected(false);
- }
+// if (togglePauseTransfer != null) {
+// this.togglePauseTransfer.setSelected(false);
+// }
}
@Override
@@ -800,638 +930,673 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
}
}
+ private void shutdownWithConfirmation() {
+ int result = JOptionPane.showConfirmDialog(this,
+ "Shut down iDrop?",
+ "Do you want to shut down iDrop?",
+ JOptionPane.OK_CANCEL_OPTION);
+ if (result == JOptionPane.OK_OPTION) {
+ shutdown();
+ }
+ }
+
+ private void shutdown() {
+ try {
+ log.info("shut down queue timer");
+ iDropCore.getQueueTimer().cancel();
+ log.info("saving current configuration to idrop.properties");
+ iDropCore.getIdropConfigurationService().saveConfigurationToPropertiesFile();
+ log.info("properties saved");
+ } catch (IdropException ex) {
+ log.error("iDrop exception on shutdown will be ignored", ex);
+ }
+ System.exit(0);
+ }
+
/**
- * Show or hide the iRODS info panel and manage the state of the show info menu and toggle so
- * that they remain in synch
+ * Update the system tray icon based on the current status.
+ *
+ * @param iconFile
*/
- private void handleInfoPanelShowOrHide() {
- final iDrop idropGuiReference = this;
+ public void updateIcon(final String iconFile) {
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
- pnlIrodsInfo.setVisible(toggleIrodsDetails.isSelected());
- jCheckBoxMenuItemShowIrodsInfo.setSelected(toggleIrodsDetails.isSelected());
- // if info is being opened, initialize to the first selected
- // item, or the root of the iRODS tree if none
- // selected
- IRODSNode node;
-
- if (irodsTree.getSelectionModel().getLeadSelectionIndex() < 0) {
- if (irodsTree.getRowCount() > 0) {
- irodsTree.setRowSelectionInterval(0, 0);
- }
- }
- if (pnlIrodsInfo.isVisible()) {
- idropGuiReference.triggerInfoPanelUpdate();
- splitTargetCollections.setDividerLocation(0.5d);
+ /*
+ * listener events may occur at startup before the GUI is fully prepared, ignore
+ * these
+ */
+ if (trayIcon == null) {
+ return;
}
+
+ Image newIcon = createImage(iconFile, "icon");
+
+ trayIcon.setImage(newIcon);
+
+// if (pnlIdropProgressIcon != null) {
+// progressIconImageLabel.setIcon(new ImageIcon(newIcon));
+//
+// }
}
});
}
- /**
- * Set up a JTree that depicts the local file system
- */
- private void setUpLocalFileSelectTree() {
-
- /*
- * build a list of the roots (e.g. drives on windows systems). If there is only one, use it
- * as the basis for the file model, otherwise, display an additional panel listing the other
- * roots, and build the tree for the first drive encountered.
- */
+ public Object getLastCachedInfoItem() {
+ return lastCachedInfoItem;
+ }
- if (fileTree != null) {
- log.info("file tree already initialized");
- return;
- }
+ public void triggerInfoPanelUpdate() throws IdropRuntimeException {
- log.info("building tree to look at local file system");
- final iDrop gui = this;
+ final iDrop idropGui = this;
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- initializeLocalFileTreeModel(null);
- fileTree = new LocalFileTree(localFileModel, gui);
- listLocalDrives.getSelectionModel().addListSelectionListener(
- new ListSelectionListener() {
-
- @Override
- public void valueChanged(final ListSelectionEvent e) {
- if (e.getValueIsAdjusting()) {
- return;
- }
+ IRODSOutlineModel irodsFileSystemModel = (IRODSOutlineModel) getIrodsTree().getModel();
- log.debug("new local file system model");
- log.debug("selection event:{}", e);
- Object selectedItem = listLocalDrives.getSelectedValue();
- initializeLocalFileTreeModelWhenDriveIsSelected(selectedItem);
+ ListSelectionModel selectionModel = getIrodsTree().getSelectionModel();
+ int idx = selectionModel.getLeadSelectionIndex();
- }
- });
- scrollLocalFileTree.setViewportView(fileTree);
- pnlLocalTreeArea.add(scrollLocalFileTree,
- java.awt.BorderLayout.CENTER);
+ // use first selection for info
+ IRODSNode selectedNode = (IRODSNode) irodsFileSystemModel.getValueAt(
+ idx, 0);
+ log.info("selected node to initialize info panel:{}", selectedNode);
+ try {
+ identifyNodeTypeAndInitializeInfoPanel(selectedNode);
+ } catch (IdropException ex) {
+ log.error("error initializing info panel for selected iRODS node", ex);
+ throw new IdropRuntimeException(
+ "error initializing info panel for selected irods node");
+ } finally {
+ iDropCore.closeIRODSConnectionForLoggedInAccount();
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ }
}
});
}
- private void initializeLocalFileTreeModelWhenDriveIsSelected(
- final Object selectedDrive) {
- if (selectedDrive == null) {
- log.debug("selected drive is null, use the first one");
- listLocalDrives.setSelectedIndex(0);
-
- localFileModel = new LocalFileSystemModel(new LocalFileNode(
- new File((String) listLocalDrives.getSelectedValue())));
+ // Update state of toolbar buttons when iRODS tree nodes are selected
+ public void triggerToolbarUpdate() throws IdropRuntimeException {
- fileTree.setModel(localFileModel);
- } else {
- log.debug(
- "selected drive is not null, create new root based on selection",
- selectedDrive);
- listLocalDrives.setSelectedValue(selectedDrive, true);
- localFileModel = new LocalFileSystemModel(new LocalFileNode(
- new File((String) selectedDrive)));
- fileTree.setModel(localFileModel);
+ final iDrop idropGui = this;
- }
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
- scrollLocalDrives.setVisible(true);
- }
+ String path = "";
+ IRODSOutlineModel irodsFileSystemModel = (IRODSOutlineModel) getIrodsTree().getModel();
- private void initializeLocalFileTreeModel(final Object selectedDrive) {
- List<String> roots = LocalFileUtils.listFileRootsForSystem();
+ // first check for selected item in iRODS tree
+ ListSelectionModel selectionModel = getIrodsTree().getSelectionModel();
+ int idx = selectionModel.getLeadSelectionIndex();
+ IRODSNode selectedNode = (IRODSNode) irodsFileSystemModel.getValueAt(idx, 0);
+ path = selectedNode.getFullPath();
- if (roots.isEmpty()) {
- IdropException ie = new IdropException(
- "unable to find any roots on the local file system");
- log.error("error building roots on local file system", ie);
- showIdropException(ie);
- return;
- } else if (roots.size() == 1) {
- scrollLocalDrives.setVisible(false);
- localFileModel = new LocalFileSystemModel(new LocalFileNode(
- new File(roots.get(0))));
+ CollectionAndDataObjectListingEntry irodsObj = (CollectionAndDataObjectListingEntry) selectedNode.getUserObject();
+ if (irodsObj.isCollection()) {
+ enableCollectionSelectedButtons(true);
+ setBreadcrumb(path);
+ }
+ else {
+ enableCollectionSelectedButtons(false);
+ }
+ enableToolbarButtons(idx >= 0);
- } else {
- DefaultListModel listModel = new DefaultListModel();
- for (String root : roots) {
- listModel.addElement(root);
}
+ });
+ }
- listLocalDrives.setModel(listModel);
+ private void enableToolbarButtons(boolean state) {
+ btnMainToolbarInfo.setEnabled(state);
+ btnMainToolbarCopy.setEnabled(state);
+ btnMainToolbarDelete.setEnabled(state);
+ //btnMainToolbarDownload.setEnabled(state);
+ //btnMainToolbarSync.setEnabled(state);
+ }
- scrollLocalDrives.setVisible(true);
+ private void enableCollectionSelectedButtons(boolean state) {
+ //btnMainToolbarUpload.setEnabled(state);
+ btnMainToolbarSearchFiles.setEnabled(state);
+ }
+
+ private void setBreadcrumb(String path) {
+ lblBreadCrumb.setText(path);
+ }
+
+ private void processSearchRequest() {
+ log.info("do a search for files and collections");
+// if (comboSearchType.getSelectedIndex() == 0) {
+// log.info("searching files and collections");
+ searchFilesAndShowSearchResultsTab(txtMainToolbarSearchTerms.getText());
+// } else if (comboSearchType.getSelectedIndex() == 1) {
+// log.info("searching by tag value");
+// searchTagsAndShowSearchResultsTag(txtMainSearch.getText());
+// } else {
+// throw new UnsupportedOperationException("not yet implemented");
+// }
+ }
+
+ private void searchFilesAndShowSearchResultsTab(final String searchText) {
+ if (searchText.isEmpty()) {
+ this.showMessageFromOperation("please enter text to search on");
+ return;
}
+ SearchResultsDialog searchResultsDialog = new SearchResultsDialog(this, true,
+ getIrodsTree(), searchText);
+
+ searchResultsDialog.setLocation(
+ (int) (this.getLocation().getX() + this.getWidth() / 2), (int) (this.getLocation().getY() + this.getHeight() / 2));
+ searchResultsDialog.setVisible(true);
+
+// final String searchTerms = searchText.trim();
+// final iDrop idropGui = this;
+//
+// java.awt.EventQueue.invokeLater(new Runnable() {
+//
+// @Override
+// public void run() {
+//
+// try {
+// idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+// CollectionAndDataObjectListAndSearchAO collectionAndDataObjectListAndSearchAO = iDropCore.getIRODSAccessObjectFactory().getCollectionAndDataObjectListAndSearchAO(
+// iDropCore.getIrodsAccount());
+// IRODSSearchTableModel irodsSearchTableModel = new IRODSSearchTableModel(
+// collectionAndDataObjectListAndSearchAO.searchCollectionsAndDataObjectsBasedOnName(searchTerms));
+// tableSearchResults.setModel(irodsSearchTableModel);
+// tabIrodsViews.setSelectedComponent(pnlTabSearch);
+// } catch (Exception e) {
+// idropGui.showIdropException(e);
+// return;
+// } finally {
+// iDropCore.closeAllIRODSConnections();
+// idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+// }
+// }
+// });
}
/**
- * Establish base path (checking if strict acl's are in place.
+ * Look at the kind of irods node and handle appropriately
*
- * @return
- * <code>String</code> with the base path for the tree
- * @throws JargonException
+ * @param irodsNode
+ * @throws IdropException
*/
- private synchronized String getBasePath() throws JargonException {
- String myBase = this.getiDropCore().getBasePath();
+ public void identifyNodeTypeAndInitializeInfoPanel(final IRODSNode irodsNode)
+ throws IdropException {
+// if (!getToggleIrodsDetails().isSelected()) {
+// return;
+// }
+//
+// if (irodsNode == null) {
+// return;
+// }
+//
+// if (irodsNode.isLeaf()) {
+// log.info("selected node is a leaf, get a data object");
+// buildDataObjectFromSelectedIRODSNodeAndGiveToInfoPanel(irodsNode);
+// } else {
+// log.info("selected node is a collection, get a collection object");
+// buildCollectionFromSelectedIRODSNodeAndGiveToInfoPanel(irodsNode);
+// }
+ }
+
+ private void executeDownload(final String downloadPath) {
- // if no base defined, see if there is a prese
- if (myBase == null) {
+ final iDrop idropGui = this;
- if (this.getiDropCore().getIrodsAccount().isAnonymousAccount()) {
- log.info("user is anonymous, default to view the public directory");
- myBase = MiscIRODSUtils.computePublicDirectory(this.getiDropCore().getIrodsAccount());
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- } else {
+ IRODSOutlineModel irodsFileSystemModel = (IRODSOutlineModel) getIrodsTree().getModel();
- if (iDropCore.getIdropConfig().isLoginPreset()) {
- log.info("using policy preset home directory");
- StringBuilder sb = new StringBuilder();
- sb.append("/");
- sb.append(getIrodsAccount().getZone());
- sb.append("/");
- sb.append("home");
- myBase = sb.toString();
- } else {
- // look up the strict acl setting for the server, if strict acl, home the person in their user directory
- EnvironmentalInfoAO environmentalInfoAO = this.getiDropCore().getIRODSAccessObjectFactory().getEnvironmentalInfoAO(getiDropCore().getIrodsAccount());
- boolean isStrict = environmentalInfoAO.isStrictACLs();
- log.info("is strict?:{}", isStrict);
+ ListSelectionModel selectionModel = getIrodsTree().getSelectionModel();
+ int idxStart = selectionModel.getMinSelectionIndex();
+ int idxEnd = selectionModel.getMaxSelectionIndex();
+ final List<File> sourceFiles = new ArrayList<File>();
- if (isStrict) {
- myBase = MiscIRODSUtils.computeHomeDirectoryForIRODSAccount(iDropCore.getIrodsAccount());
- } else {
- myBase = "/";
- }
+ // get iRODS File Service
+ IRODSFileService irodsFS = null;
+ try {
+ irodsFS = new IRODSFileService(iDropCore.getIrodsAccount(), iDropCore.getIrodsFileSystem());
+ } catch (Exception ex) {
+ //JOptionPane.showMessageDialog(this, "Cannot access iRODS file system for get.");
+ log.error("cannot create irods file service");
+ return;
+ }
+ // now collect all selected nodes
+ IRODSFile ifile = null;
+ for (int idx = idxStart; idx <= idxEnd; idx++) {
+ if (selectionModel.isSelectedIndex(idx)) {
+ try {
+ IRODSNode selectedNode = (IRODSNode) irodsFileSystemModel.getValueAt(idx, 0);
+ ifile = irodsFS.getIRODSFileForPath(selectedNode.getFullPath());
+ sourceFiles.add((File) ifile);
+ } catch (IdropException ex) {
+ Exceptions.printStackTrace(ex);
}
}
}
- getiDropCore().setBasePath(myBase);
- return myBase;
- }
+ StringBuilder sb = new StringBuilder();
- /**
- * build the JTree that will depict the iRODS resource
- */
- public void buildTargetTree(final boolean reset) {
- log.info("building tree to look at staging resource");
- final iDrop gui = this;
+ if (sourceFiles.size() == 1) {
+ sb.append("Would you like to copy the remote file ");
+ sb.append(sourceFiles.get(0).getAbsolutePath());
+ sb.append(" to ");
+ sb.append(downloadPath);
+ } else {
+ sb.append("Would you like to copy multiple files to ");
+ sb.append(downloadPath);
- java.awt.EventQueue.invokeLater(new Runnable() {
+ }
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- @Override
- public void run() {
- gui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- IRODSOutlineModel mdl = null;
- log.info("building new iRODS tree");
- try {
- if (getTreeStagingResource() != null) {
- if (reset) {
- loadNewTree();
- } else {
- reloadExistingTree();
- }
- } else {
- loadNewTree();
- }
- } catch (Exception ex) {
- Logger.getLogger(iDrop.class.getName()).log(Level.SEVERE,
- null, ex);
- throw new IdropRuntimeException(ex);
- } finally {
- getiDropCore().getIrodsFileSystem().closeAndEatExceptions(
- iDropCore.getIrodsAccount());
- gui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- }
- }
+ // default icon, custom title
+ int n = JOptionPane.showConfirmDialog(idropGui, sb.toString(),
+ "Confirm a Get ", JOptionPane.YES_NO_OPTION);
- /**
- * A tree has not been previosly loaded, establish the root (strict ACLs? Login preset?)
- */
- private void loadNewTree() throws JargonException, IdropException {
- IRODSOutlineModel mdl;
- TreePath[] currentPaths = null;
- CollectionAndDataObjectListingEntry root = new CollectionAndDataObjectListingEntry();
- String basePath = getBasePath();
- log.info("base path set to:{}", basePath);
- if (basePath.equals("/")) {
- root.setPathOrName(basePath);
- root.setObjectType(CollectionAndDataObjectListingEntry.ObjectType.COLLECTION);
- } else {
- IRODSFile baseFile = iDropCore.getIRODSFileFactoryForLoggedInAccount().instanceIRODSFile(basePath);
- root.setParentPath(baseFile.getParent());
- root.setPathOrName(baseFile.getAbsolutePath());
- root.setObjectType(CollectionAndDataObjectListingEntry.ObjectType.COLLECTION);
- }
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- irodsTree = new IRODSTree(gui);
- IRODSNode rootNode = new IRODSNode(root,
- getIrodsAccount(), getiDropCore().getIrodsFileSystem(), irodsTree);
- irodsTree.setRefreshingTree(true);
- IRODSFileSystemModel irodsFileSystemModel = new IRODSFileSystemModel(
- rootNode, getIrodsAccount());
- mdl = new IRODSOutlineModel(gui,
- irodsFileSystemModel, new IRODSRowModel(), true,
- "File System");
- irodsTree.setModel(mdl);
- scrollIrodsTree.setViewportView(irodsTree);
- }
+ if (n == JOptionPane.YES_OPTION) {
- /**
- * A tree already exists so use the current information to reload
- */
- private void reloadExistingTree() throws IdropException, JargonException {
- IRODSNode currentRoot = (IRODSNode) irodsTree.getOutlineModel().getRoot();
- log.debug("current tree root:{}", currentRoot);
- TreePath rootPath = TreeUtils.getPath(currentRoot);
- TreePath[] currentPaths = irodsTree.getOutlineModel().getTreePathSupport().getExpandedDescendants(rootPath);
- log.info("expanded paths:{}", currentPaths);
- scrollIrodsTree.getViewport().removeAll();
- irodsTree = null;
- loadNewTree();
- if (currentPaths != null) {
- IRODSNode irodsNode = null;
- TreePath pathOfExpandingNode = null;
- CollectionAndDataObjectListingEntry expandedEntry = null;
- log.info("looking to re-expand paths...");
- for (TreePath treePath : currentPaths) {
- irodsNode = (IRODSNode) treePath.getLastPathComponent();
- expandedEntry = (CollectionAndDataObjectListingEntry) irodsNode.getUserObject();
- irodsNode = (IRODSNode) TreeUtils.buildTreePathForIrodsAbsolutePath(irodsTree, expandedEntry.getFormattedAbsolutePath()).getLastPathComponent();
- irodsNode.getChildCount();
- TreePath pathInNew = TreeUtils.getPath(irodsNode);
- irodsTree.collapsePath(pathInNew);
- irodsTree.expandPath(pathInNew);
+ // process as a get
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ for (File transferFile : sourceFiles) {
+
+ if (transferFile instanceof IRODSFile) {
+ log.info(
+ "initiating a transfer of iRODS file:{}",
+ transferFile.getAbsolutePath());
+ log.info("transfer to local file:{}",
+ downloadPath);
+ idropGui.getiDropCore().getTransferManager().enqueueAGet(
+ transferFile.getAbsolutePath(),
+ downloadPath,
+ "", idropGui.getIrodsAccount());
+ } else {
+ log.info(
+ "process a local to local move with source...not yet implemented : {}",
+ transferFile.getAbsolutePath());
+ }
+ }
+ } catch (JargonException ex) {
+ java.util.logging.Logger.getLogger(
+ LocalFileTree.class.getName()).log(
+ java.util.logging.Level.SEVERE, null, ex);
+ idropGui.showIdropException(ex);
+ throw new IdropRuntimeException(ex);
}
}
- }
- });
+ });
+ }
+
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
- public void initializeInfoPane(
- final CollectionAndDataObjectListingEntry collectionAndDataObjectListingEntry)
- throws IdropException {
- if (!toggleIrodsDetails.isSelected()) {
- log.info("info display not selected, don't bother");
- return;
+ private void executeUpload(final File[] sourceFiles) {
+
+ // first collect selected target path from breadcrumb
+ final String targetPath = lblBreadCrumb.getText();
+
+ final iDrop idropGui = this;
+
+// final List<File> sourceFiles = new ArrayList<File>();
+//
+// idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+//
+// TreeSelectionModel selectionModel = getFileTree().getSelectionModel();
+// LocalFileSystemModel fileSystemModel = (LocalFileSystemModel) idropGui.getFileTree().getModel();
+//
+// TreePath[] selectionPaths = selectionModel.getSelectionPaths();
+//
+// LocalFileNode sourceNode;
+// for (TreePath selectionPath : selectionPaths) {
+// sourceNode = (LocalFileNode) selectionPath.getLastPathComponent();
+// sourceFiles.add((File) sourceNode.getUserObject());
+// }
+
+ if (sourceFiles.length <= 0) {
+ log.error("no source files in transfer");
+ throw new IdropRuntimeException("no source files in transfer");
}
- if (collectionAndDataObjectListingEntry == null) {
- throw new IdropException("null collectionAndDataObjectListingEntry");
+ StringBuilder sb = new StringBuilder();
+
+ if (sourceFiles.length > 1) {
+ sb.append("Would you like to put multiple files");
+ sb.append(" to iRODS at ");
+ sb.append(targetPath);
+ } else {
+ sb.append("Would you like to put the file ");
+ sb.append(sourceFiles[0].getAbsolutePath());
+ sb.append(" to iRODS at ");
+ sb.append(targetPath);
}
- final iDrop idropGui = this;
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- // need to get the collection or data object info from iRODS
- java.awt.EventQueue.invokeLater(new Runnable() {
+ // default icon, custom title
+ int n = JOptionPane.showConfirmDialog(idropGui, sb.toString(),
+ "Confirm a Get ", JOptionPane.YES_NO_OPTION);
- @Override
- public void run() {
- idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- try {
- if (collectionAndDataObjectListingEntry.getObjectType() == CollectionAndDataObjectListingEntry.ObjectType.COLLECTION) {
- log.info("looking up collection to build info panel");
- CollectionAO collectionAO = getiDropCore().getIrodsFileSystem().getIRODSAccessObjectFactory().getCollectionAO(getIrodsAccount());
- Collection collection = collectionAO.findByAbsolutePath(collectionAndDataObjectListingEntry.getPathOrName());
- initializeInfoPanel(collection);
- } else {
- log.info("looking up data object to build info panel");
- DataObjectAO dataObjectAO = getiDropCore().getIrodsFileSystem().getIRODSAccessObjectFactory().getDataObjectAO(getIrodsAccount());
- DataObject dataObject = dataObjectAO.findByAbsolutePath(collectionAndDataObjectListingEntry.getParentPath()
- + "/"
- + collectionAndDataObjectListingEntry.getPathOrName());
- initializeInfoPanel(dataObject);
- }
+ if (n == JOptionPane.YES_OPTION) {
- } catch (Exception e) {
- log.error(
- "exception building info panel from collection and data object listing entry:{}",
- collectionAndDataObjectListingEntry, e);
- throw new IdropRuntimeException(e);
- } finally {
- getiDropCore().getIrodsFileSystem().closeAndEatExceptions(
- getIrodsAccount());
- idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+ // process as a put
+
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ for (File transferFile : sourceFiles) {
+ log.info("process a put from source: {}",
+ transferFile.getAbsolutePath());
+
+ String localSourceAbsolutePath = transferFile.getAbsolutePath();
+ String sourceResource = idropGui.getIrodsAccount().getDefaultStorageResource();
+ log.info("initiating put transfer");
+ try {
+ idropGui.getiDropCore().getTransferManager().enqueueAPut(localSourceAbsolutePath,
+ targetPath,
+ sourceResource,
+ idropGui.getIrodsAccount());
+ } catch (JargonException ex) {
+ java.util.logging.Logger.getLogger(
+ LocalFileTree.class.getName()).log(
+ java.util.logging.Level.SEVERE, null, ex);
+ idropGui.showIdropException(ex);
+ }
+ }
}
- }
- });
+ });
+ }
+
+ idropGui.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
/**
- * Initialize the info panel with data from iRODS. In this case, the data is an iRODS data
- * object (file). Called from a runnable that will handle the irods collection and busy cursor.
+ * A transfer confirm dialog
*
- * @param dataObject
- * <code>DataObject</code> iRODS domain object for a file.
- * @throws IdropException
+ * @param sourcePath <code>String</code> with the source path of the
+ * transfer
+ * @param targetPath <code>String</code> with the target of the transfer
+ * @return <code>int</code> with the dialog user response.
*/
- public void initializeInfoPanel(final DataObject dataObject)
- throws IdropException {
-
- if (!toggleIrodsDetails.isSelected()) {
- log.info("info display not selected, don't bother");
- return;
- }
+ public int showTransferConfirm(final String sourcePath,
+ final String targetPath) {
- if (dataObject == null) {
- throw new IdropException("Null dataObject");
- }
+ StringBuilder sb = new StringBuilder();
+ sb.append("Would you like to transfer from ");
+ sb.append(sourcePath);
+ sb.append(" to ");
+ sb.append(targetPath);
- this.lastCachedInfoItem = dataObject;
- final iDrop idropGui = this;
+ // default icon, custom title
+ int n = JOptionPane.showConfirmDialog(this, sb.toString(),
+ "Transfer Confirmaiton", JOptionPane.YES_NO_OPTION);
+ return n;
+ }
- lblFileOrCollectionName.setText(IDropUtils.abbreviateFileName(dataObject.getAbsolutePath()));
- lblFileOrCollectionName.setToolTipText(dataObject.getAbsolutePath());
+ /**
+ * Status callback per file, or intra-file, from the transfer manager
+ *
+ * @param ts
+ */
+ @Override
+ public void statusCallback(final TransferStatus ts) {
- log.debug("getting available tags for data object");
+ log.info("transfer status callback to iDROP:{}", ts);
+ final iDrop idrop = this;
- try {
- FreeTaggingService freeTaggingService = FreeTaggingServiceImpl.instance(getiDropCore().getIrodsFileSystem().getIRODSAccessObjectFactory(),
- getiDropCore().getIrodsAccount());
- IRODSTagGrouping irodsTagGrouping = freeTaggingService.getTagsForDataObjectInFreeTagForm(dataObject.getCollectionName()
- + "/"
- + dataObject.getDataName());
- txtTags.setText(irodsTagGrouping.getSpaceDelimitedTagsForDomain());
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
- IRODSTaggingService irodsTaggingService = IRODSTaggingServiceImpl.instance(getiDropCore().getIrodsFileSystem().getIRODSAccessObjectFactory(),
- getIrodsAccount());
+ if (ts.getTransferState() == TransferStatus.TransferState.FAILURE) {
+ // an error occurs, stop the transfer
+ log.error("error occurred in transfer: {}", ts);
+ if (ts.getTransferException() == null) {
+ idrop.showMessageFromOperation("An error occurred in the transfer, this transfer will be cancelled");
+ } else {
+ idrop.showIdropException(ts.getTransferException());
+ }
- IRODSTagValue tagValue = irodsTaggingService.getDescriptionOnDataObjectForLoggedInUser(dataObject.getAbsolutePath());
+ } else if (ts.isIntraFileStatusReport()) {
- if (tagValue == null) {
- txtComment.setText("");
- } else {
- txtComment.setText(tagValue.getTagData());
- }
+ log.debug("transferred so far:{}", ts.getBytesTransfered());
+ log.debug("total bytes:{}", ts.getTotalSize());
+ float rawPct = (float) ts.getBytesTransfered() / ts.getTotalSize();
+ int percentDone = (int) (rawPct * 100F);
+ log.info("pct done:{}", percentDone);
- pnlInfoIcon.removeAll();
- pnlInfoIcon.add(IconHelper.getFileIcon());
- pnlInfoIcon.validate();
- lblInfoCreatedAtValue.setText(SDF.format(dataObject.getCreatedAt()));
- lblInfoCreatedAtTimeValue.setText(STF.format(dataObject.getCreatedAt()));
- lblInfoUpdatedAtValue.setText(SDF.format(dataObject.getUpdatedAt()));
- lblInfoUpdatedAtTimeValue.setText(STF.format(dataObject.getUpdatedAt()));
- lblInfoLengthValue.setText(FieldFormatHelper.formatFileLength(dataObject.getDataSize()));
+ progressIntraFile.setValue(percentDone);
+ progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
- lblInfoChecksumValue.setText(dataObject.getChecksum());
- lblCollectionTypeLabel.setVisible(false);
- lblCollectionType.setVisible(false);
- adjustInfoPanelVisibilityOfDataObjectSpecificContent(true);
+ } else if (ts.getTransferState() == TransferStatus.TransferState.IN_PROGRESS_START_FILE) {
- lblDataPath.setText(IDropUtils.abbreviateFileName(dataObject.getDataPath()));
- lblDataPath.setToolTipText(dataObject.getDataPath());
+ // start of a file operation
+ progressIntraFile.setMinimum(0);
+ progressIntraFile.setMaximum(100);
+ progressIntraFile.setValue(0);
+ lblCurrentFile.setText(IDropUtils.abbreviateFileName(ts.getSourceFileAbsolutePath()));
+ transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
+ progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
- lblDataReplicationStatus.setText(dataObject.getReplicationStatus());
- lblDataVersion.setText(String.valueOf(dataObject.getDataVersion()));
+ } else if (ts.getTransferState() == TransferStatus.TransferState.IN_PROGRESS_COMPLETE_FILE) {
- lblDataType.setText(dataObject.getDataTypeName());
+ progressIntraFile.setValue(100);
- lblDataStatus.setText(dataObject.getDataStatus());
+ transferStatusProgressBar.setMaximum(ts.getTotalFilesToTransfer());
+ transferStatusProgressBar.setValue(ts.getTotalFilesTransferredSoFar());
+ transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
+ progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
- lblOwnerName.setText(dataObject.getDataOwnerName());
- lblOwnerZone.setText(dataObject.getDataOwnerZone());
+ } else {
- } catch (JargonException ex) {
- Logger.getLogger(iDrop.class.getName()).log(Level.SEVERE,
- null, ex);
- throw new IdropRuntimeException(ex);
- } finally {
- this.getiDropCore().closeIRODSConnectionForLoggedInAccount();
- }
+ transferStatusProgressBar.setMaximum(ts.getTotalFilesToTransfer());
+ transferStatusProgressBar.setValue(ts.getTotalFilesTransferredSoFar());
+ transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
+ progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
+ lblCurrentFile.setText(IDropUtils.abbreviateFileName(ts.getSourceFileAbsolutePath()));
+ }
+ }
+ });
}
/**
- * Initialize the info panel with data from iRODS. In this case, the data is an iRODS collection
- * (directory). Called from a runnable that will handle the irods collection and busy cursor.
+ * Be able to do things to the transfer panel
*
- * @param collection
- * @throws IdropException
+ * @param isBegin
*/
- public void initializeInfoPanel(final Collection collection)
- throws IdropException {
- if (collection == null) {
- throw new IdropException("Null collection");
+ private void setUpTransferPanel(boolean isBegin) {
+ if (isBegin) {
+ pnlCurrentTransferStatus.setVisible(true);
+ } else {
+ pnlCurrentTransferStatus.setVisible(true);
}
+ }
- log.info("initialize info panel with collection:{}", collection);
-
- if (!toggleIrodsDetails.isSelected()) {
- log.info("info display not selected, don't bother");
- return;
- }
+ /**
+ * Implementation of transfer manager callback. The overall status callback
+ * represents the start and completion of a transfer operation
+ *
+ * @param ts
+ */
+ @Override
+ public void overallStatusCallback(final TransferStatus ts) {
- this.lastCachedInfoItem = collection;
+ final IRODSOutlineModel irodsTreeModel = (IRODSOutlineModel) irodsTree.getModel();
final iDrop idropGui = this;
- lblFileOrCollectionName.setText(IDropUtils.abbreviateFileName(collection.getAbsolutePath()));
- lblFileOrCollectionName.setToolTipText(collection.getAbsolutePath());
-
- log.debug("getting available tags for data object");
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ @Override
+ public void run() {
- try {
- FreeTaggingService freeTaggingService = FreeTaggingServiceImpl.instance(getiDropCore().getIrodsFileSystem().getIRODSAccessObjectFactory(),
- getIrodsAccount());
- IRODSTaggingService irodsTaggingService = IRODSTaggingServiceImpl.instance(getiDropCore().getIrodsFileSystem().getIRODSAccessObjectFactory(),
- getIrodsAccount());
+ if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_INITIATION || ts.getTransferState() == TransferStatus.TransferState.SYNCH_INITIALIZATION) {
+ transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
+ progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
+ idropGui.setUpTransferPanel(true);
+ } else if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_COMPLETION || ts.getTransferState() == TransferStatus.TransferState.SYNCH_COMPLETION) {
+ idropGui.setUpTransferPanel(false);
+ }
- log.info("looking up description for collection");
- IRODSTagValue comments = irodsTaggingService.getDescriptionOnCollectionForLoggedInUser(collection.getCollectionName());
+ /*
+ * Handle appropriate tree notifications, so some filtering to prevent notifications
+ * when for a different host/zone
+ */
+ if (ts.getTransferType() == TransferStatus.TransferType.SYNCH || ts.getTransferType() == TransferStatus.TransferType.REPLICATE) {
+ log.info("no need to notify tree for synch or replicate");
+ } else if (ts.getTransferType() == TransferStatus.TransferType.GET
+ && ts.getTransferState() == TransferStatus.TransferState.OVERALL_COMPLETION) {
+ try {
+ ((LocalFileSystemModel) idropGui.getFileTree().getModel()).notifyCompletionOfOperation(idropGui.getFileTree(), ts);
- if (comments == null) {
- txtComment.setText("");
- } else {
- txtComment.setText(comments.getTagData());
- }
+ } catch (IdropException ex) {
+ log.error("error on tree notify after operation", ex);
+ throw new IdropRuntimeException("error processing overall status callback", ex);
+ }
+ } else if (ts.getTransferType() == TransferStatus.TransferType.COPY || ts.getTransferType() == TransferStatus.TransferType.PUT) {
+ if (ts.getTransferZone().equals(
+ iDropCore.getIrodsAccount().getZone()) && ts.getTransferHost().equals(iDropCore.getIrodsAccount().getHost())) {
+ try {
+ // should leave PUT, and COPY
+ irodsTreeModel.notifyCompletionOfOperation(irodsTree, ts);
+ } catch (IdropException ex) {
+ log.error("error on tree notify after operation", ex);
+ throw new IdropRuntimeException("error processing overall status callback", ex);
+ }
+ }
+ }
- IRODSTagGrouping irodsTagGrouping = freeTaggingService.getTagsForCollectionInFreeTagForm(collection.getCollectionName());
- txtTags.setText(irodsTagGrouping.getSpaceDelimitedTagsForDomain());
- pnlInfoIcon.removeAll();
- pnlInfoIcon.add(IconHelper.getFolderIcon());
- pnlInfoIcon.validate();
- lblInfoCreatedAtValue.setText(SDF.format(collection.getCreatedAt()));
- lblInfoCreatedAtTimeValue.setText(STF.format(collection.getCreatedAt()));
- lblInfoUpdatedAtValue.setText(SDF.format(collection.getModifiedAt()));
- lblInfoUpdatedAtTimeValue.setText(STF.format(collection.getModifiedAt()));
- lblCollectionTypeLabel.setVisible(true);
- lblCollectionType.setVisible(true);
- lblCollectionType.setText(collection.getSpecColType().name());
- adjustInfoPanelVisibilityOfDataObjectSpecificContent(false);
-
- } catch (JargonException ex) {
- Logger.getLogger(iDrop.class.getName()).log(Level.SEVERE,
- null, ex);
- throw new IdropRuntimeException(ex);
- } finally {
- this.getiDropCore().closeIRODSConnectionForLoggedInAccount();
- }
- }
+ /*
+ * Handle progress bar and messages. These are cleared on overall initiation
+ */
+ if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_INITIATION || ts.getTransferState() == TransferStatus.TransferState.SYNCH_INITIALIZATION) {
+ clearProgressBar();
+ // on initiation, clear and reset the status bar info
+ lblTransferType.setText(ts.getTransferType().name());
+ transferStatusProgressBar.setString(FieldFormatHelper.formatFileProgress(ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar(), 0));
+ progressIntraFile.setString(FieldFormatHelper.formatByteProgress(ts.getTotalSize(), ts.getBytesTransfered(), 0));
+ lblCurrentFile.setText(IDropUtils.abbreviateFileName(ts.getSourceFileAbsolutePath()));
+ transferStatusProgressBar.setMinimum(0);
+ transferStatusProgressBar.setMaximum(ts.getTotalFilesToTransfer());
+ transferStatusProgressBar.setValue(0);
+ }
- private void adjustInfoPanelVisibilityOfDataObjectSpecificContent(final boolean visible) {
- lblInfoLengthValue.setVisible(visible);
- lblInfoLength.setVisible(visible);
- lblInfoChecksum.setVisible(visible);
- lblInfoChecksumValue.setVisible(visible);
- lblOwnerNameLabel.setVisible(visible);
- lblOwnerName.setVisible(visible);
- lblOwnerZoneLabel.setVisible(visible);
- lblOwnerZone.setVisible(visible);
- lblDataPathLabel.setVisible(visible);
- lblDataPath.setVisible(visible);
- lblDataReplicationStatusLabel.setVisible(visible);
- lblDataReplicationStatus.setVisible(visible);
- lblDataVersionLabel.setVisible(visible);
- lblDataVersion.setVisible(visible);
- lblDataTypeLabel.setVisible(visible);
- lblDataType.setVisible(visible);
- lblDataStatusLabel.setVisible(visible);
- lblDataStatus.setVisible(visible);
+ /*
+ * Handle any text messages
+ */
+ if (ts.getTransferState() == TransferStatus.TransferState.SYNCH_INITIALIZATION) {
+ lblTransferMessage.setText("Synchronization Initializing");
+ } else if (ts.getTransferState() == TransferStatus.TransferState.SYNCH_DIFF_GENERATION) {
+ lblTransferMessage.setText("Synchronization looking for updates");
+ } else if (ts.getTransferState() == TransferStatus.TransferState.SYNCH_DIFF_STEP) {
+ lblTransferMessage.setText("Synchronizing differences");
+ } else if (ts.getTransferState() == TransferStatus.TransferState.SYNCH_COMPLETION) {
+ lblTransferMessage.setText("Synchronization complete");
+ } else if (ts.getTransferEnclosingType() == TransferStatus.TransferType.SYNCH) {
+ lblTransferMessage.setText("Transfer to synchronize local and iRODS");
+ } else if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_INITIATION) {
+ // initiation not within a synch
+ lblTransferMessage.setText("Processing a " + ts.getTransferType().name() + " operation");
+ }
+ }
+ });
}
/**
- * Get the JTree component that represents the iRODS file system in the iDrop gui.
- *
- * @return
- * <code>IRODSTree</code> that is the JTree component for the iRODS file system view.
+ * Call from a swing event queue runnable
*/
- public IRODSTree getIrodsTree() {
- return irodsTree;
+ private synchronized void clearProgressBar() {
+ lblTransferType.setText("");
+ lblCurrentFile.setText("");
+ transferStatusProgressBar.setMinimum(0);
+ transferStatusProgressBar.setMaximum(100);
+ transferStatusProgressBar.setValue(0);
+ transferStatusProgressBar.setString("");
+ progressIntraFile.setString("");
+ }
+
+ @Override
+ public synchronized void transferManagerErrorStatusUpdate(
+ final ErrorStatus es) {
+ iDropCore.getIconManager().setErrorStatus(es);
}
- public JToggleButton getToggleIrodsDetails() {
- return toggleIrodsDetails;
+ @Override
+ public synchronized void transferManagerRunningStatusUpdate(
+ final RunningStatus rs) {
+ iDropCore.getIconManager().setRunningStatus(rs);
+ if (rs == RunningStatus.PAUSED) {
+ this.setTransferStatePaused();
+ } else {
+ this.setTransferStateUnpaused();
+ }
}
/**
- * This method is called from within the constructor to initialize the form. WARNING: Do NOT
- * modify this code. The content of this method is always regenerated by the Form Editor.
- *
+ * Creates new form iDrop2
+ */
+ /*
+ public iDrop2() {
+ initComponents();
+ }
*/
- // <editor-fold defaultstate="collapsed"
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
- searchTablePopupMenu = new javax.swing.JPopupMenu();
- menuItemShowInHierarchy = new javax.swing.JMenuItem();
- buttonGroupLandF = new javax.swing.ButtonGroup();
- pnlInfoMetadata = new javax.swing.JPanel();
- lblMetadataInfo = new javax.swing.JLabel();
- pnlInfoSharing = new javax.swing.JPanel();
- lblInfoSharing = new javax.swing.JLabel();
- pnlInfoReplication = new javax.swing.JPanel();
- lblMetadataInfo1 = new javax.swing.JLabel();
- iDropToolbar = new javax.swing.JPanel();
- pnlToolbarSizer = new javax.swing.JPanel();
- pnlTopToolbarSearchArea = new javax.swing.JPanel();
- pnlSearchSizer = new javax.swing.JPanel();
- lblMainSearch = new javax.swing.JLabel();
- comboSearchType = new javax.swing.JComboBox();
- txtMainSearch = new javax.swing.JTextField();
- btnSearch = new javax.swing.JButton();
- pnlLocalToggleSizer = new javax.swing.JPanel();
- toggleLocalFiles = new javax.swing.JToggleButton();
- pnlIrodsDetailsToggleSizer = new javax.swing.JPanel();
- toggleIrodsDetails = new javax.swing.JToggleButton();
- pnlIdropMain = new javax.swing.JPanel();
- jSplitPanelLocalRemote = new javax.swing.JSplitPane();
+ jPopupMenu1 = new javax.swing.JPopupMenu();
+ pnlMain = new javax.swing.JPanel();
+ pnlMainToolbar = new javax.swing.JPanel();
+ pnlMainToolbarIcons = new javax.swing.JPanel();
+ btnMainToolbarDownload = new javax.swing.JButton();
+ btnMainToolbarUpload = new javax.swing.JButton();
+ btnMainToolbarRefresh = new javax.swing.JButton();
+ jSeparator1 = new javax.swing.JSeparator();
+ btnMainToolbarCopy = new javax.swing.JButton();
+ btnMainToolbarDelete = new javax.swing.JButton();
+ btnMainToolbarInfo = new javax.swing.JButton();
+ jSeparator3 = new javax.swing.JSeparator();
+ btnMainToolbarSync = new javax.swing.JButton();
+ btnMainToolbarSettings = new javax.swing.JButton();
+ pnlMainToolbarSearch = new javax.swing.JPanel();
+ lblBreadCrumb = new javax.swing.JLabel();
+ pnlBreadCrumbNav = new javax.swing.JPanel();
+ jSeparator2 = new javax.swing.JSeparator();
+ txtMainToolbarSearchTerms = new javax.swing.JTextField();
+ btnMainToolbarSearchFiles = new javax.swing.JButton();
+ pnlMainIrodsTree = new javax.swing.JPanel();
+ splitPanelTrees = new javax.swing.JSplitPane();
+ scrollIrodsTree = new javax.swing.JScrollPane();
pnlLocalTreeArea = new javax.swing.JPanel();
pnlLocalRoots = new javax.swing.JPanel();
scrollLocalDrives = new javax.swing.JScrollPane();
listLocalDrives = new javax.swing.JList();
- pnlRefreshButton = new javax.swing.JPanel();
- btnRefreshLocalDrives = new javax.swing.JButton();
pnlDrivesFiller = new javax.swing.JPanel();
scrollLocalFileTree = new javax.swing.JScrollPane();
- pnlIrodsArea = new javax.swing.JPanel();
- splitTargetCollections = new javax.swing.JSplitPane();
- tabIrodsViews = new javax.swing.JTabbedPane();
- pnlTabHierarchicalView = new javax.swing.JPanel();
- pnlIrodsTreeToolbar = new javax.swing.JPanel();
- toolbarIrodsTree = new javax.swing.JToolBar();
- btnRefreshTargetTree = new javax.swing.JButton();
- btnGoHomeTargetTree = new javax.swing.JButton();
- btnGoRootTargetTree = new javax.swing.JButton();
- btnSetRootCustomTargetTree = new javax.swing.JButton();
- pnlIrodsTreeMaster = new javax.swing.JPanel();
- scrollIrodsTree = new javax.swing.JScrollPane();
- pnlTabSearch = new javax.swing.JPanel();
- pnlTabSearchTop = new javax.swing.JPanel();
- pnlTabSearchResults = new javax.swing.JPanel();
- scrollPaneSearchResults = new javax.swing.JScrollPane();
- tableSearchResults = new javax.swing.JTable();
- pnlIrodsInfo = new javax.swing.JPanel();
- tabInfo = new javax.swing.JTabbedPane();
- jScrollPane1 = new javax.swing.JScrollPane();
- pnlInfoInner = new javax.swing.JPanel();
- pnlInfoIcon = new javax.swing.JPanel();
- jLabel1 = new javax.swing.JLabel();
- lblSelectedFileInfo = new javax.swing.JLabel();
- lblFilePathLabel = new javax.swing.JLabel();
- lblFileOrCollectionName = new javax.swing.JLabel();
- lblComment = new javax.swing.JLabel();
- scrollComment = new javax.swing.JScrollPane();
- txtComment = new javax.swing.JTextArea();
- filler4 = new javax.swing.Box.Filler(new java.awt.Dimension(10, 0), new java.awt.Dimension(10, 0), new java.awt.Dimension(10, 32767));
- lblTags = new javax.swing.JLabel();
- txtTags = new javax.swing.JTextField();
- btnUpdateInfo = new javax.swing.JButton();
- pnlFileInfoDemographics = new javax.swing.JPanel();
- lblInfoCreatedAt = new javax.swing.JLabel();
- lblInfoCreatedAtValue = new javax.swing.JLabel();
- lblInfoCreatedAtTimeValue = new javax.swing.JLabel();
- lblInfoUpdatedAt = new javax.swing.JLabel();
- lblInfoUpdatedAtValue = new javax.swing.JLabel();
- lblInfoUpdatedAtTimeValue = new javax.swing.JLabel();
- lblInfoLength = new javax.swing.JLabel();
- lblInfoLengthValue = new javax.swing.JLabel();
- lblInfoChecksum = new javax.swing.JLabel();
- lblInfoChecksumValue = new javax.swing.JLabel();
- lblOwnerNameLabel = new javax.swing.JLabel();
- lblOwnerName = new javax.swing.JLabel();
- lblOwnerZoneLabel = new javax.swing.JLabel();
- lblOwnerZone = new javax.swing.JLabel();
- lblCollectionTypeLabel = new javax.swing.JLabel();
- lblCollectionType = new javax.swing.JLabel();
- lblDataPathLabel = new javax.swing.JLabel();
- lblDataPath = new javax.swing.JLabel();
- lblDataReplicationStatusLabel = new javax.swing.JLabel();
- lblDataReplicationStatus = new javax.swing.JLabel();
- lblDataVersionLabel = new javax.swing.JLabel();
- lblDataVersion = new javax.swing.JLabel();
- lblDataTypeLabel = new javax.swing.JLabel();
- lblDataType = new javax.swing.JLabel();
- lblDataStatusLabel = new javax.swing.JLabel();
- lblDataStatus = new javax.swing.JLabel();
+ pnlMainTransferStatus = new javax.swing.JPanel();
pnlIdropBottom = new javax.swing.JPanel();
- pnlBottomGutter = new javax.swing.JPanel();
- pnlHostInfo = new javax.swing.JPanel();
- lblUserNameLabel = new javax.swing.JLabel();
- userNameLabel = new javax.swing.JLabel();
- filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(10, 0), new java.awt.Dimension(10, 0), new java.awt.Dimension(10, 32767));
- lblZoneLabel = new javax.swing.JLabel();
- lblZone = new javax.swing.JLabel();
- filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(10, 0), new java.awt.Dimension(10, 0), new java.awt.Dimension(10, 32767));
- lblHostLabel = new javax.swing.JLabel();
- lblHost = new javax.swing.JLabel();
- filler3 = new javax.swing.Box.Filler(new java.awt.Dimension(10, 0), new java.awt.Dimension(10, 0), new java.awt.Dimension(10, 32767));
- lblDefaultResource = new javax.swing.JLabel();
- comboDefaultResource = new javax.swing.JComboBox();
- pnlStatusIcon = new javax.swing.JPanel();
- btnManageGrids = new javax.swing.JButton();
pnlCurrentTransferStatus = new javax.swing.JPanel();
lblCurrentFile = new javax.swing.JLabel();
progressIntraFile = new javax.swing.JProgressBar();
@@ -1445,165 +1610,177 @@ public class iDrop extends javax.swing.JFrame implements ActionListener,
btnShowTransferManager = new javax.swing.JButton();
togglePauseTransfer = new javax.swing.JToggleButton();
progressIconImageLabel = new javax.swing.JLabel();
- jMenuBar1 = new javax.swing.JMenuBar();
- jMenuFile = new javax.swing.JMenu();
- jMenuItemClose = new javax.swing.JMenuItem();
- jMenuItemExit = new javax.swing.JMenuItem();
- jMenuEdit = new javax.swing.JMenu();
- jMenuView = new javax.swing.JMenu();
- jCheckBoxMenuItemShowSourceTree = new javax.swing.JCheckBoxMenuItem();
- jCheckBoxMenuItemShowIrodsInfo = new javax.swing.JCheckBoxMenuItem();
- jMenuTools = new javax.swing.JMenu();
- jMenuLookAndFeel = new javax.swing.JMenu();
- jRadioButtonLookAndFeelDefault = new javax.swing.JRadioButtonMenuItem();
- jRadioButtonLookAndFeelNimbus = new javax.swing.JRadioButtonMenuItem();
- jRadioButtonMenuItemMetal = new javax.swing.JRadioButtonMenuItem();
- jRadioButtonMenuItemMotif = new javax.swing.JRadioButtonMenuItem();
- jRadioButtonMenuItemGTK = new javax.swing.JRadioButtonMenuItem();
- jMenuItemConfig = new javax.swing.JMenuItem();
- jMenuHelp = new javax.swing.JMenu();
- jMenuItemAbout = new javax.swing.JMenuItem();
-
- menuItemShowInHierarchy.setText("Show in iRODS");
- menuItemShowInHierarchy.setToolTipText("Show this file or collection in the iRODS hierarchy");
- menuItemShowInHierarchy.addActionListener(new java.awt.event.ActionListener() {
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+ setMinimumSize(new java.awt.Dimension(622, 158));
+ setSize(new java.awt.Dimension(822, 158));
+
+ pnlMain.setMinimumSize(new java.awt.Dimension(622, 158));
+ pnlMain.setPreferredSize(new java.awt.Dimension(730, 635));
+ pnlMain.setLayout(new java.awt.BorderLayout());
+
+ pnlMainToolbar.setMinimumSize(new java.awt.Dimension(622, 131));
+ pnlMainToolbar.setPreferredSize(new java.awt.Dimension(834, 135));
+ pnlMainToolbar.setLayout(new java.awt.BorderLayout());
+
+ pnlMainToolbarIcons.setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 20, 10, 20));
+ pnlMainToolbarIcons.setMinimumSize(new java.awt.Dimension(622, 90));
+ pnlMainToolbarIcons.setPreferredSize(new java.awt.Dimension(622, 90));
+ pnlMainToolbarIcons.setLayout(new javax.swing.BoxLayout(pnlMainToolbarIcons, javax.swing.BoxLayout.LINE_AXIS));
+
+ btnMainToolbarDownload.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_download.png"))); // NOI18N
+ btnMainToolbarDownload.setText(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarDownload.text")); // NOI18N
+ btnMainToolbarDownload.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 28));
+ btnMainToolbarDownload.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ btnMainToolbarDownload.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+ btnMainToolbarDownload.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
- menuItemShowInHierarchyActionPerformed(evt);
+ btnMainToolbarDownloadActionPerformed(evt);
}
});
- searchTablePopupMenu.add(menuItemShowInHierarchy);
-
- lblMetadataInfo.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
- lblMetadataInfo.setForeground(java.awt.Color.blue);
- lblMetadataInfo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edit-4.png"))); // NOI18N
- lblMetadataInfo.setText("iRODS AVU Metadata");
- pnlInfoMetadata.add(lblMetadataInfo);
-
- lblInfoSharing.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
- lblInfoSharing.setForeground(java.awt.Color.blue);
- lblInfoSharing.setIcon(new javax.swing.ImageIcon(getClass().getResource("/share.png"))); // NOI18N
- lblInfoSharing.setText("Access Permissions and Tickets");
- pnlInfoSharing.add(lblInfoSharing);
-
- lblMetadataInfo1.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
- lblMetadataInfo1.setForeground(java.awt.Color.blue);
- lblMetadataInfo1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/edit-copy-3.png"))); // NOI18N
- lblMetadataInfo1.setText("File Replication");
- pnlInfoReplication.add(lblMetadataInfo1);
-
- setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
- setTitle("iDrop - iRODS Cloud Browser");
- setMinimumSize(new java.awt.Dimension(600, 600));
- addWindowListener(new java.awt.event.WindowAdapter() {
- public void windowClosed(java.awt.event.WindowEvent evt) {
- formWindowClosed(evt);
+ pnlMainToolbarIcons.add(btnMainToolbarDownload);
+
+ btnMainToolbarUpload.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_upload.png"))); // NOI18N
+ btnMainToolbarUpload.setText(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarUpload.text")); // NOI18N
+ btnMainToolbarUpload.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 28));
+ btnMainToolbarUpload.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ btnMainToolbarUpload.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+ btnMainToolbarUpload.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnMainToolbarUploadActionPerformed(evt);
}
});
-
- iDropToolbar.setMinimumSize(new java.awt.Dimension(800, 400));
- iDropToolbar.setPreferredSize(new java.awt.Dimension(1077, 40));
- iDropToolbar.setLayout(new java.awt.BorderLayout());
-
- pnlToolbarSizer.setLayout(new java.awt.BorderLayout());
-
- pnlTopToolbarSearchArea.setMinimumSize(new java.awt.Dimension(45, 50));
- pnlTopToolbarSearchArea.setLayout(new java.awt.BorderLayout());
-
- pnlSearchSizer.setMinimumSize(new java.awt.Dimension(74, 30));
- pnlSearchSizer.setPreferredSize(new java.awt.Dimension(254, 50));
- pnlSearchSizer.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
-
- lblMainSearch.setText("Search:");
- lblMainSearch.setMaximumSize(null);
- lblMainSearch.setMinimumSize(null);
- lblMainSearch.setPreferredSize(new java.awt.Dimension(45, 40));
- pnlSearchSizer.add(lblMainSearch);
-
- comboSearchType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "by name", "by tag", "by name and tag" }));
- comboSearchType.setToolTipText("Select the type of search to be carried out using the supplied search string");
- pnlSearchSizer.add(comboSearchType);
-
- txtMainSearch.setColumns(20);
- txtMainSearch.setToolTipText("Search for files or tags");
- txtMainSearch.setMinimumSize(null);
- txtMainSearch.setPreferredSize(new java.awt.Dimension(100, 30));
- txtMainSearch.addKeyListener(new java.awt.event.KeyAdapter() {
- public void keyPressed(java.awt.event.KeyEvent evt) {
- txtMainSearchKeyPressed(evt);
+ pnlMainToolbarIcons.add(btnMainToolbarUpload);
+
+ btnMainToolbarRefresh.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_refresh.png"))); // NOI18N
+ btnMainToolbarRefresh.setText(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarRefresh.text")); // NOI18N
+ btnMainToolbarRefresh.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 30));
+ btnMainToolbarRefresh.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ btnMainToolbarRefresh.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+ btnMainToolbarRefresh.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnMainToolbarRefreshActionPerformed(evt);
}
});
- pnlSearchSizer.add(txtMainSearch);
-
- btnSearch.setMnemonic('s');
- btnSearch.setText("Search");
- btnSearch.setToolTipText("Search iRODS based on the current view selected");
- btnSearch.addActionListener(new java.awt.event.ActionListener() {
+ pnlMainToolbarIcons.add(btnMainToolbarRefresh);
+
+ jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);
+ jSeparator1.setMaximumSize(new java.awt.Dimension(34, 60));
+ jSeparator1.setMinimumSize(new java.awt.Dimension(34, 60));
+ jSeparator1.setPreferredSize(new java.awt.Dimension(34, 60));
+ pnlMainToolbarIcons.add(jSeparator1);
+
+ btnMainToolbarCopy.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_replicate.png"))); // NOI18N
+ btnMainToolbarCopy.setText(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarCopy.text")); // NOI18N
+ btnMainToolbarCopy.setActionCommand(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarCopy.actionCommand")); // NOI18N
+ btnMainToolbarCopy.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 24));
+ btnMainToolbarCopy.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ btnMainToolbarCopy.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+ btnMainToolbarCopy.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnSearchActionPerformed(evt);
+ btnMainToolbarCopyActionPerformed(evt);
}
});
- pnlSearchSizer.add(btnSearch);
-
- pnlTopToolbarSearchArea.add(pnlSearchSizer, java.awt.BorderLayout.SOUTH);
-
- pnlToolbarSizer.add(pnlTopToolbarSearchArea, java.awt.BorderLayout.CENTER);
-
- pnlLocalToggleSizer.setLayout(new java.awt.BorderLayout());
-
- toggleLocalFiles.setText("<<< Local Files");
- toggleLocalFiles.setToolTipText("Browse the local file system.");
- toggleLocalFiles.setMaximumSize(new java.awt.Dimension(144, 10));
- toggleLocalFiles.setMinimumSize(new java.awt.Dimension(144, 10));
- toggleLocalFiles.setPreferredSize(new java.awt.Dimension(144, 30));
- toggleLocalFiles.addChangeListener(new javax.swing.event.ChangeListener() {
- public void stateChanged(javax.swing.event.ChangeEvent evt) {
- toggleLocalFilesStateChanged(evt);
+ pnlMainToolbarIcons.add(btnMainToolbarCopy);
+
+ btnMainToolbarDelete.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_delete.png"))); // NOI18N
+ btnMainToolbarDelete.setText(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarDelete.text_1")); // NOI18N
+ btnMainToolbarDelete.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 20));
+ btnMainToolbarDelete.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ btnMainToolbarDelete.setMaximumSize(new java.awt.Dimension(81, 70));
+ btnMainToolbarDelete.setPreferredSize(new java.awt.Dimension(81, 70));
+ btnMainToolbarDelete.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+ btnMainToolbarDelete.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnMainToolbarDeleteActionPerformed(evt);
}
});
- toggleLocalFiles.addActionListener(new java.awt.event.ActionListener() {
+ pnlMainToolbarIcons.add(btnMainToolbarDelete);
+
+ btnMainToolbarInfo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_editmetadata.png"))); // NOI18N
+ btnMainToolbarInfo.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 24));
+ btnMainToolbarInfo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ btnMainToolbarInfo.setLabel(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarInfo.label")); // NOI18N
+ btnMainToolbarInfo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+ btnMainToolbarInfo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
- toggleLocalFilesActionPerformed(evt);
+ btnMainToolbarInfoActionPerformed(evt);
}
});
- pnlLocalToggleSizer.add(toggleLocalFiles, java.awt.BorderLayout.NORTH);
- toggleLocalFiles.getAccessibleContext().setAccessibleName("<<< Local Files ");
+ pnlMainToolbarIcons.add(btnMainToolbarInfo);
+
+ jSeparator3.setOrientation(javax.swing.SwingConstants.VERTICAL);
+ jSeparator3.setMaximumSize(new java.awt.Dimension(34, 60));
+ jSeparator3.setPreferredSize(new java.awt.Dimension(34, 60));
+ pnlMainToolbarIcons.add(jSeparator3);
+
+ btnMainToolbarSync.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_synch.png"))); // NOI18N
+ btnMainToolbarSync.setText(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarSync.text")); // NOI18N
+ btnMainToolbarSync.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 28));
+ btnMainToolbarSync.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ btnMainToolbarSync.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+ pnlMainToolbarIcons.add(btnMainToolbarSync);
+
+ btnMainToolbarSettings.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_settings.png"))); // NOI18N
+ btnMainToolbarSettings.setText(org.openide.util.NbBundle.getMessage(iDrop.class, "iDrop.btnMainToolbarSettings.text")); // NOI18N
+ btnMainToolbarSettings.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
+ btnMainToolbarSettings.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
+ btnMainToolbarSettings.setMaximumSize(new java.awt.Dimension(58, 70));
+ btnMainToolbarSettings.setMinimumSize(new java.awt.Dimension(58, 70));
+ btnMainToolbarSettings.setPreferredSize(new java.awt.Dimension(58, 70));
+ btnMainToolbarSettings.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
+ btnMainToolbarSettings.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnMainToolbarSettingsActionPerformed(evt);
+ }
+ });
+ pnlMainToolbarIcons.add(btnMainToolbarSettings);
- pnlToolbarSizer.add(pnlLocalToggleSizer, java.awt.BorderLayout.WEST);
+ pnlMainToolbar.add(pnlMainToolbarIcons, java.awt.BorderLayout.NORTH);
- pnlIrodsDetailsT