summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormconway <michael.c.conway@gmail.com>2013-02-13 18:07:57 (GMT)
committer mconway <michael.c.conway@gmail.com>2013-02-13 18:07:57 (GMT)
commit48b81918fe38273e7016fc3b80002a9ca8d79d74 (patch)
tree875fa359de6e472e6e29c9cfdd88d7d0b2f36799
parent2c18e72121bac1adc3d4b6249cf2473c7d3ae6ac (diff)
parent024d06d3a330c0d3a787632347ec8748dc930100 (diff)
downloadQCG-Data-48b81918fe38273e7016fc3b80002a9ca8d79d74.zip
QCG-Data-48b81918fe38273e7016fc3b80002a9ca8d79d74.tar.gz
QCG-Data-48b81918fe38273e7016fc3b80002a9ca8d79d74.tar.bz2
[#1191] merge for idrop web
-rw-r--r--LICENSE.txt28
-rw-r--r--idrop-lite/pom.xml2
-rw-r--r--idrop-lite/release_notes.txt15
-rw-r--r--idrop-lite/src/main/java/org/irods/jargon/idrop/lite/Version.java4
-rw-r--r--idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.form136
-rw-r--r--idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.java641
-rw-r--r--idrop-lite/src/main/resources/org/irods/jargon/idrop/lite/Bundle.properties6
-rw-r--r--idrop-swing/pom.xml40
-rw-r--r--idrop-swing/release_notes.txt18
-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.form14
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.java45
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPDesktop.java (renamed from idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/StartupSequencer.java)22
-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.java1821
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.form174
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.java1
-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.form2305
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/iDrop.java4235
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/services/IdropConfigurationService.java3
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/services/IdropConfigurationServiceImpl.java2
-rw-r--r--idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/utils/IdropConfig.java11
-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.properties9
-rw-r--r--idrop-swing/src/main/resources/org/irods/jargon/idrop/desktop/systraygui/Bundle.properties183
-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
-rw-r--r--idrop-web-selenium/login_and_basic_name127
-rw-r--r--idrop-web/COPYING1
-rwxr-xr-x[-rw-r--r--]idrop-web/LICENSE.txt28
-rw-r--r--idrop-web/README19
-rwxr-xr-x[-rw-r--r--]idrop-web/README.txt0
-rw-r--r--idrop-web/application.properties1
-rw-r--r--idrop-web/build.sh217
-rwxr-xr-x[-rw-r--r--]idrop-web/designnotes.txt0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/BootStrap.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/BuildConfig.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/Config.groovy9
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/DataSource.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/SecurityFilters.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/UrlMappings.groovy2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/spring/resources.groovy6
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/spring/resources.xml0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/conf/testing.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/AuditController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/BrowseController.groovy276
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/FileController.groovy56
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/HomeController.groovy86
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/IdropLiteController.groovy20
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/ImageController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/LoginController.groovy90
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/MetadataController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/ProfileController.groovy174
-rw-r--r--idrop-web/grails-app/controllers/org/irods/mydrop/controller/QuickUploadController.groovy97
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/SearchController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/SharingController.groovy183
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/ShoppingCartController.groovy6
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/TagsController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/TicketAccessController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/TicketController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/controllers/org/irods/mydrop/controller/UserController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages.properties53
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_da.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_de.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_es.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_fr.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_it.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_ja.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_nl.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_pt_BR.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_pt_PT.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_ru.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_th.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/i18n/messages_zh_CN.properties0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/services/org/irods/mydrop/service/I18NMessagingService.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/services/org/irods/mydrop/service/ProfileService.groovy0
-rw-r--r--idrop-web/grails-app/services/org/irods/mydrop/service/SharingService.groovy180
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/services/org/irods/mydrop/service/ShoppingCartSessionService.groovy0
-rw-r--r--idrop-web/grails-app/services/org/irods/mydrop/service/StarringService.groovy66
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/services/org/irods/mydrop/service/ThumbnailGeneratorService.groovy0
-rw-r--r--idrop-web/grails-app/services/org/irods/mydrop/service/ViewStateService.groovy84
-rw-r--r--idrop-web/grails-app/taglib/idrop/web2/AuthUserTagTagLib.groovy13
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/taglib/org/irods/mydrop/taglib/AuthTagLib.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/taglib/org/irods/mydrop/taglib/ImageTagLib.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/audit/auditDetails.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/audit/auditInfo.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/audit/auditNoAccess.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/audit/auditTable.gsp0
-rwxr-xr-xidrop-web/grails-app/views/browse/_browseDetailsToolbar.gsp10
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/_browseTabContent.gsp5
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/_collectionInfoToolbar.gsp82
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/_dataObjectInfoToolbar.gsp77
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/browseDetails.gsp11
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/collectionInfo.gsp9
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/collectionInfoMini.gsp12
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/dataObjectInfo.gsp2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/dataObjectInfoMini.gsp12
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/galleryView.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/index.gsp6
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/loginInfo.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/newFolderDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/noInfo.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/publicLinkDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/browse/renameDialog.gsp0
-rwxr-xr-xidrop-web/grails-app/views/browse/starDialog.gsp40
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_browseLegend.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_cssAndJs.gsp1
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_footer.gsp26
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_messages.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_secondarymain.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_topToolbar.gsp6
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/common/_topbar.gsp45
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/error.gsp2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/file/deleteResult.gsp0
-rwxr-xr-xidrop-web/grails-app/views/file/quickUploadDialog.gsp45
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/file/uploadDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/home/index.gsp142
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/home/link.gsp0
-rwxr-xr-xidrop-web/grails-app/views/home/noInfo.gsp3
-rw-r--r--idrop-web/grails-app/views/home/quickViewList.gsp46
-rw-r--r--idrop-web/grails-app/views/home/shareQuickViewList.gsp45
-rw-r--r--idrop-web/grails-app/views/home/shareWithMeQuickViewList.gsp48
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/idropLite/appletLoader.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/layouts/basic.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/layouts/main.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/layouts/mainNoSidebar.gsp12
-rw-r--r--idrop-web/grails-app/views/login/defaultStorageResource.gsp50
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/login/login.gsp0
-rwxr-xr-xidrop-web/grails-app/views/login/passwordChange.gsp45
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/metadata/metadataDetails.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/metadata/metadataDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/metadata/metadataTable.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/profile/_profileToolbar.gsp0
-rw-r--r--idrop-web/grails-app/views/profile/changePasswordDialog.gsp37
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/profile/index.gsp189
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/profile/noProfileData.gsp0
-rw-r--r--idrop-web/grails-app/views/profile/profileData.gsp38
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/search/searchResult.gsp86
-rw-r--r--idrop-web/grails-app/views/sharing/_sharingPanel.gsp41
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/sharing/aclDetails.gsp68
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/sharing/aclDialog.gsp2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/sharing/aclTable.gsp0
-rwxr-xr-xidrop-web/grails-app/views/sharing/addShareDialog.gsp40
-rw-r--r--idrop-web/grails-app/views/sharing/sharingPanelWrapper.gsp3
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/sharing/userPanel.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/shoppingCart/cartDetails.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/shoppingCart/index.gsp0
-rwxr-xr-xidrop-web/grails-app/views/tags/index.gsp64
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/tags/tagCloud.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticket/ticketDetails.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticket/ticketPulldown.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticket/ticketTable.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticketAccess/ticketAccessCollection.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticketAccess/ticketAccessDataObject.gsp2
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/ticketAccess/uploadToTicketCollection.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/user/index.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/user/userInfoDialog.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/grails-app/views/user/userList.gsp6
-rwxr-xr-x[-rw-r--r--]idrop-web/idrop-web-config2.groovy (renamed from idrop-web/idrop-web-config.groovy)9
-rw-r--r--idrop-web/idrop-web.list.template328
-rw-r--r--idrop-web/pom.xml416
-rwxr-xr-x[-rw-r--r--]idrop-web/release_notes.txt18
-rw-r--r--idrop-web/site/resources/css/site.css10
-rw-r--r--idrop-web/site/resources/eclipse.xml251
-rw-r--r--idrop-web/site/site.xml20
-rw-r--r--idrop-web/site/xdoc/build.xml9
-rw-r--r--idrop-web/site/xdoc/codeFormat.xml10
-rw-r--r--idrop-web/site/xdoc/index.xml9
-rwxr-xr-x[-rw-r--r--]idrop-web/src/groovy/org/irods/mydrop/config/ServerProperties.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/groovy/org/irods/mydrop/config/ServerPropertiesCache.groovy0
-rw-r--r--idrop-web/src/groovy/org/irods/mydrop/config/ViewState.groovy18
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/Controller.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/DomainClass.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/Filters.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/ScaffoldingController.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/Script.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/Service.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/TagLib.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/Tests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/WebTest.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/artifacts/hibernate.cfg.xml0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/scaffolding/Controller.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/scaffolding/Test.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/scaffolding/_form.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/scaffolding/create.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/scaffolding/edit.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/scaffolding/list.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/scaffolding/renderEditor.template0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/scaffolding/show.gsp0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/testing/Controller.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/testing/DomainClass.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/testing/Filters.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/testing/Generic.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/testing/Service.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/testing/TagLib.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/testing/UnitTest.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/src/templates/war/web.xml0
-rw-r--r--idrop-web/test/unit/idrop/web2/AuthUserTagTagLibTests.groovy17
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/AuditControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/BrowseControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/FileControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/HomeControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/IdropLiteControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/ImageControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/MetadataControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/ProfileControllerTests.groovy0
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/controller/QuickUploadControllerTests.groovy17
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/SearchControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/SharingControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/ShoppingCartControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/TagsControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/TicketAccessControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/TicketControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/UserControllerTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/controller/UserTagServiceTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/service/I18NMessagingServiceTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/service/ProfileServiceTests.groovy0
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/service/SharingServiceTests.groovy17
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/service/StarringServiceTests.groovy17
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/service/ThumbnailServiceTests.groovy0
-rw-r--r--idrop-web/test/unit/org/irods/mydrop/service/ViewStateServiceTests.groovy17
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/taglib/AuthTagLibTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/test/unit/org/irods/mydrop/taglib/ImageTagLibTests.groovy0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/WEB-INF/applicationContext.xml0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/WEB-INF/sitemesh.xml0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/WEB-INF/tld/c.tld0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/WEB-INF/tld/fmt.tld0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/WEB-INF/tld/grails.tld0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/WEB-INF/tld/spring.tld0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/WEB-INF/web.xml0
-rw-r--r--idrop-web/web-app/css/bootstrap-responsive.min.css9
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/bootstrap.css2
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/errors.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/jqcloud.css22
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/jquery.gritter.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/layout-default-latest.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/loader.gifbin4782 -> 4782 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/loaderWhite.gifbin10294 -> 10294 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/main.css2
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/mobile.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_flat_0_aaaaaa_40x100.pngbin180 -> 180 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_flat_0_eeeeee_40x100.pngbin180 -> 180 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_flat_55_c0402a_40x100.pngbin182 -> 182 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_flat_55_eeeeee_40x100.pngbin180 -> 180 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_glass_100_f8f8f8_1x400.pngbin105 -> 105 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_glass_35_dddddd_1x400.pngbin109 -> 109 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_glass_60_eeeeee_1x400.pngbin110 -> 110 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_inset-hard_75_999999_1x100.pngbin114 -> 114 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.pngbin96 -> 96 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-icons_3383bb_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-icons_454545_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-icons_70b2e1_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-icons_999999_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/images/ui-icons_fbc856_256x240.pngbin5355 -> 5355 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/overcast/jquery-ui-1.9.0.custom.min.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_flat_55_999999_40x100.pngbin180 -> 180 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_flat_75_aaaaaa_40x100.pngbin180 -> 180 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_glass_45_0078ae_1x400.pngbin136 -> 136 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_glass_55_f8da4e_1x400.pngbin131 -> 131 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_glass_75_79c9ec_1x400.pngbin132 -> 132 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.pngbin3649 -> 3649 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.pngbin4882 -> 4882 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_gloss-wave_75_2191c0_500x100.pngbin3457 -> 3457 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.pngbin88 -> 88 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-icons_0078ae_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-icons_056b93_256x240.pngbin5355 -> 5355 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-icons_d8e7f3_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-icons_e0fdff_256x240.pngbin5355 -> 5355 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-icons_f5e175_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-icons_f7a50d_256x240.pngbin4369 -> 4369 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/images/ui-icons_fcd113_256x240.pngbin5355 -> 5355 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/start/jquery-ui-1.8.18.custom.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/style.css26
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/css/superfish.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/Lifetime-Library.pngbin11858 -> 11858 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/Sorting icons.psdbin27490 -> 27490 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/ad_next.pngbin355 -> 355 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/ajax-loader-bar.gifbin10819 -> 10819 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/ajax-loader.gifbin2947 -> 2947 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/apple-touch-icon-retina.pngbin14986 -> 14986 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/apple-touch-icon.pngbin5434 -> 5434 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/arrow-refresh.pngbin1192 -> 1192 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/arrows-ffffff.pngbin244 -> 244 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/back_disabled.jpgbin612 -> 612 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/back_enabled.jpgbin807 -> 807 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/configure-4.pngbin1109 -> 1109 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/configure-5.pngbin1308 -> 1308 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/dialog-accept.pngbin1197 -> 1197 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/edit-4.pngbin1159 -> 1159 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/edit-copy-3.pngbin631 -> 631 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/favicon.icobin894 -> 894 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/file.pngbin1990 -> 1990 bytes
-rwxr-xr-xidrop-web/web-app/images/file_icon.pngbin0 -> 13041 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/folder.pngbin2143 -> 2143 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/folder_icon.pngbin4130 -> 4130 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/forward_disabled.jpgbin635 -> 635 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/forward_enabled.jpgbin852 -> 852 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/go-home-4.pngbin932 -> 932 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/go-jump.pngbin1379 -> 1379 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/go-parent-folder.pngbin1137 -> 1137 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/grails_logo.jpgbin8065 -> 8065 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/grails_logo.pngbin10172 -> 10172 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/gritter-light.pngbin4899 -> 4899 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/gritter-long.pngbin6299 -> 6299 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/gritter.pngbin4880 -> 4880 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/help-contents.pngbin1270 -> 1270 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/iDropbin68184 -> 68184 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/iDropLogo.pngbin21715 -> 21715 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/ie-spacer.gifbin43 -> 43 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/im-user.pngbin1205 -> 1205 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/leftnav_btm.pngbin3859 -> 3859 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/leftnav_midstretch.pngbin2883 -> 2883 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/leftnav_top.pngbin3317 -> 3317 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/loader.gifbin4782 -> 4782 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/shadow.pngbin1698 -> 1698 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/database_add.pngbin658 -> 658 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/database_delete.pngbin659 -> 659 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/database_edit.pngbin767 -> 767 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/database_save.pngbin755 -> 755 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/database_table.pngbin726 -> 726 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/exclamation.pngbin701 -> 701 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/house.pngbin806 -> 806 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/information.pngbin778 -> 778 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/shadow.jpgbin300 -> 300 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/sorted_asc.gifbin835 -> 835 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/skin/sorted_desc.gifbin834 -> 834 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/sort_asc.pngbin263 -> 263 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/sort_asc_disabled.pngbin252 -> 252 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/sort_both.pngbin282 -> 282 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/sort_desc.pngbin260 -> 260 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/sort_desc_disabled.pngbin251 -> 251 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/spinner.gifbin2037 -> 2037 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/springsource.pngbin9109 -> 9109 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/images/upload.pngbin11502 -> 11502 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/img/glyphicons-halflings-white.pngbin8777 -> 8777 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/img/glyphicons-halflings.pngbin12799 -> 12799 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/application.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/bootstrap.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/bundles/messages.properties7
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/galleria-1.2.6.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jqcloud-0.1.5.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jqcloud-0.1.6.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery-1.7.1.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery-1.7.2.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery-1.8.0.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery-ui-13.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.ba-bbq.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.blockUI.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.dataTables.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.gchart.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.gritter.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.hotkeys.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.i18n.properties-min-1.0.9.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.jeditable.mini.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.jstree.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.layout-latest.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.media.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.opacityrollover.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jquery.tools.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.checkbox.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.contextmenu.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.core.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.dnd.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.hotkeys.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.html.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.json.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.sort.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.state.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.themes.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.ui.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.unique.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/jstree.xml.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/audit.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/home.js1238
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/lingo_common.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/main.js110
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/metadata.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/profile.js62
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/search.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/shopping_cart.js14
-rw-r--r--idrop-web/web-app/js/mydrop/tag.js92
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/ticket.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/mydrop/user.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/splitter.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/superfish.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/themes/classic/classic-demo.html0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/themes/classic/classic-loader.gifbin1849 -> 1849 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/themes/classic/classic-map.pngbin1840 -> 1840 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/themes/classic/galleria.classic.css0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/themes/classic/galleria.classic.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/themes/classic/galleria.classic.min.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/js/vakata.js0
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/loader.gifbin4782 -> 4782 bytes
-rwxr-xr-x[-rw-r--r--]idrop-web/web-app/mediaplayer.swfbin34574 -> 34574 bytes
-rw-r--r--pom.xml4
-rw-r--r--release_notes.txt8
427 files changed, 14991 insertions, 6177 deletions
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..caca18c
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,28 @@
+iRODS license terms and copyright info from the irods site at: https://www.irods.org/index.php/License
+
+License
+iRODS Copyright and Licensing
+
+iRODS is open source software released under a BSD License, see license text in "iRODS License Terms and Conditions" below.
+The BSD license has been described in very general terms as allowing you to do whatever you want to with the software and
+source code as long as you acknowledge who wrote it and that, as with any open source software, there is no warranty and you're using the code "as is."
+In the spirit of collaborative open source software, the iRODS community encourages you to communicate with us, letting us know what features you like,
+features that would be useful, problems, bugs, suggestions, etc., and to perhaps contribute source code.
+The iRODS community has formed the Data Intensive Cyberinfrastructure Foundation, a 501(c)(3) nonprofit corporation established to serve
+ as the home of the iRODS open source community over the long term. If you choose to contribute new code, you'll receive full acknowledgment. All you do is complete the Contributor's Agreement, under which you retain copyright ownership
+ in your code but give a free license to the iRODS nonprofit foundation, allowing your code to be integrated into iRODS and in turn released under the BSD license.
+Note: The above text is an educational overview of iRODS open source licensing, and not intended as legal advice nor is it part of the iRODS license agreement, which is below. As always, for legal advice consult an attorney.
+
+iRODS License Terms and Conditions Notice
+
+Copyright (c) 2005-2011, Regents of the University of California, the University of North Carolina, and the Data Intensive Cyberinfrastructure Foundation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+Neither the name of the University of California, San Diego (UCSD) nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
diff --git a/idrop-lite/pom.xml b/idrop-lite/pom.xml
index 1d65537..55a4f17 100644
--- a/idrop-lite/pom.xml
+++ b/idrop-lite/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>idrop</artifactId>
<groupId>org.irods</groupId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
</parent>
<groupId>org.irods.idrop</groupId>
<artifactId>idrop-lite</artifactId>
diff --git a/idrop-lite/release_notes.txt b/idrop-lite/release_notes.txt
index 213702e..b2bf9d4 100644
--- a/idrop-lite/release_notes.txt
+++ b/idrop-lite/release_notes.txt
@@ -1,11 +1,9 @@
-
*'''Project''': iDrop-lite transfer applet
-*'''Date''': 10/23/2012
-*'''Release Version''': 1.0.2-beta1
-*'''git tag''': 1.0.2-beta1
-*'''download jar with dependencies (run java -jar jarname)''': https://code.renci.org/gf/project/irodsidrop/frs/?action=FrsReleaseBrowse&frs_package_id=4
+*'''Date''': 11/28/2012
+*'''Release Version''': 1.0.2
+*'''git tag''': 1.0.2
-NOTE: the release notes were not yet in place for this project, going forward bugs and features addressed will be reflected here
+iDrop lite is an embedded transfer applet
==News==
@@ -28,7 +26,10 @@ Note that the following bug and feature requests are logged in GForge with relat
==Features==
-[#1023] Update Version class to include build time and POM version
+*[#1023] Update Version class to include build time and POM version
+
+*[#1062] 1.0.2 release activities
+**Added default storage resource to iDrop lite panel
==Outstanding Issues==
diff --git a/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/Version.java b/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/Version.java
index 11ea40e..d08df52 100644
--- a/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/Version.java
+++ b/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/Version.java
@@ -1,5 +1,5 @@
package org.irods.jargon.idrop.lite;
public final class Version {
- public static String VERSION="1.0.2-SNAPSHOT";
- public static String BUILD_TIME="20121024-0941";
+ public static String VERSION="2.0.0-SNAPSHOT";
+ public static String BUILD_TIME="20130207-1818";
}
diff --git a/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.form b/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.form
index eac08ea..b03593f 100644
--- a/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.form
+++ b/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.form
@@ -36,10 +36,7 @@
</Constraint>
</Constraints>
- <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridLayout">
- <Property name="columns" type="int" value="1"/>
- <Property name="rows" type="int" value="1"/>
- </Layout>
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="testCardPanel">
<Properties>
@@ -47,6 +44,11 @@
<Dimension value="[710, 490]"/>
</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>
@@ -494,7 +496,7 @@
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="84" max="-2" attributes="0"/>
<Component id="jLabel5" min="-2" max="-2" attributes="0"/>
- <EmptySpace pref="168" max="32767" attributes="0"/>
+ <EmptySpace pref="117" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
@@ -2055,6 +2057,130 @@
</Container>
</SubComponents>
</Container>
+ <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>
+ <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>
+ <Container class="javax.swing.JPanel" name="pnlHostInfo">
+
+ <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" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/lite/Bundle.properties" key="iDropLiteApplet.lblUserNameLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="userNameLabel">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/lite/Bundle.properties" key="iDropLiteApplet.userNameLabel.text" 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="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" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/lite/Bundle.properties" key="iDropLiteApplet.lblZoneLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="lblZone">
+ <Properties>
+ <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/lite/Bundle.properties" key="iDropLiteApplet.lblZone.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </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="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" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/lite/Bundle.properties" key="iDropLiteApplet.lblDefaultResource.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <AccessibilityProperties>
+ <Property name="AccessibleContext.accessibleName" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
+ <ResourceString bundle="org/irods/jargon/idrop/lite/Bundle.properties" key="iDropLiteApplet.lblDefaultResource.AccessibleContext.accessibleName" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </AccessibilityProperties>
+ </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>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="comboDefaultResourceActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
</SubComponents>
</Container>
</SubComponents>
diff --git a/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.java b/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.java
index bdec5f2..643acb3 100644
--- a/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.java
+++ b/idrop-lite/src/main/java/org/irods/jargon/idrop/lite/iDropLiteApplet.java
@@ -25,6 +25,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.DropMode;
@@ -45,6 +46,7 @@ import org.irods.jargon.core.exception.JargonException;
import org.irods.jargon.core.pub.DataTransferOperations;
import org.irods.jargon.core.pub.EnvironmentalInfoAO;
import org.irods.jargon.core.pub.IRODSFileSystem;
+import org.irods.jargon.core.pub.ResourceAO;
import org.irods.jargon.core.pub.UserAO;
import org.irods.jargon.core.pub.io.IRODSFile;
import org.irods.jargon.core.query.CollectionAndDataObjectListingEntry;
@@ -68,7 +70,7 @@ import org.slf4j.LoggerFactory;
* @author lisa
*/
public class iDropLiteApplet extends javax.swing.JApplet implements TransferStatusCallbackListener, TableModelListener, ComponentListener {
-
+
private static final org.slf4j.Logger log = LoggerFactory.getLogger(iDropLiteApplet.class);
private iDropLiteApplet applet;
private final Integer defaultLoginMode = -1;
@@ -103,12 +105,13 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
static final int uploadFolder = 2;
static final int uploadURL = 3;
- /** Initializes the applet NewJApplet */
+ /**
+ * Initializes the applet NewJApplet
+ */
public void init() {
this.applet = this;
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
-
public void run() {
log.info("iDropLiteApplet version is:{}", Version.VERSION);
getAppletParams();
@@ -122,9 +125,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
ex.printStackTrace();
}
}
-
+
protected void getAppletParams() {
-
+
try {
this.mode = Integer.parseInt(getParameter("mode"));
} catch (Exception ex) {
@@ -140,7 +143,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
} catch (Exception ex) {
this.uploadDest = "";
}
-
+
try {
this.host = getParameter("host");
this.port = Integer.parseInt(getParameter("port"));
@@ -148,14 +151,13 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
this.zone = getParameter("zone");
this.tempPswd = getParameter("password");
- if(getParameter("absPath") == null) {
- this.absPath = "/" + this.zone + "/" + this.user;
- log.info("no absPath parameter provided, set to default: {}", this.absPath);
- }
- else {
- this.absPath = getParameter("absPath");
+ if (getParameter("absPath") == null) {
+ this.absPath = "/" + this.zone + "/" + this.user;
+ log.info("no absPath parameter provided, set to default: {}", this.absPath);
+ } else {
+ this.absPath = getParameter("absPath");
}
-
+
if (getParameter("displayMode") == null) {
this.displayMode = 0;
log.info("normal (all modes) display mode");
@@ -172,7 +174,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
log.info("shopping cart key IS set");
this.key = getParameter("key");
}
-
+
log.debug("creating account with applet params");
log.info("mode:{}", mode);
log.info("host:{}", host);
@@ -186,12 +188,12 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
Logger.getLogger(iDropLiteApplet.class.getName()).log(Level.SEVERE, null, ex);
showIdropException(ex);
}
-
+
}
-
+
private boolean retrievePermAccount() {
String pswd = null;
-
+
DataCacheServiceImpl dataCache = new DataCacheServiceImpl();
try {
dataCache.setIrodsAccessObjectFactory(irodsFileSystem.getIRODSAccessObjectFactory());
@@ -201,7 +203,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
log.info("creating temporary irods account...");
IRODSAccount tmpAccount = new IRODSAccount(host, port, user, tempPswd, absPath, zone, defaultStorageResource);
dataCache.setIrodsAccount(tmpAccount);
-
+
try {
log.info("sending user name and key user:{}", user);
pswd = dataCache.retrieveStringValueFromCache(user, tempPswd);
@@ -211,16 +213,16 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
Logger.getLogger(iDropLiteApplet.class.getName()).log(Level.SEVERE, null, e2);
return false;
}
-
+
return true;
}
-
+
private boolean createPermAccount() {
this.irodsAccount = new IRODSAccount(host, port, user, tempPswd, absPath, zone, defaultStorageResource);
-
+
return true;
}
-
+
private boolean processLogin() {
// do different logins depending on which mode is used
@@ -229,7 +231,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
// 2 - Temporary password only mode
switch (this.mode) {
-
+
case 1:
showMessageFromOperation("Connection mode - 1 is not currently supported. Please configure another connection mode.");
return false;
@@ -247,10 +249,10 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
return false;
}
break;
-
+
case 2:
log.info("processLogin: using temp-only with cache");
-
+
if (!tempOnlyAccount()) {
showMessageFromOperation("Permanent Password Mode: login error - unable to log in, or invalid user id");
return false;
@@ -259,12 +261,12 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
default:
showMessageFromOperation("Unsupported Login Mode");
return false;
-
+
}
-
-
+
+
try {
-
+
final UserAO userAO = irodsFileSystem.getIRODSAccessObjectFactory().getUserAO(irodsAccount);
iDropCore.setIrodsAccount(irodsAccount);
iDropCore.setIrodsFileSystem(irodsFileSystem);
@@ -298,11 +300,11 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
return true;
}
-
+
protected boolean doStartup() {
-
+
log.info("initiating startup sequence...");
-
+
log.info("creating irods file system instance...");
try {
irodsFileSystem = IRODSFileSystem.instance();
@@ -315,11 +317,11 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
log.info("creating idropCore...");
iDropCore = new iDropLiteCore();
-
+
if (!processLogin()) {
return false;
}
-
+
// set Look and Feel
//String lookAndFeel = iDropCore.setLookAndFeel();
//log.info("setting look and feel: {}", lookAndFeel);
@@ -327,31 +329,49 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
if (this.displayMode != 3) {
buildTargetTree();
}
-
+
setUpLocalFileSelectTree();
setUpUploadLocalFileSelectTree();
-
+
try {
-
+
DataTransferOperations dataTransferOperations = irodsFileSystem.getIRODSAccessObjectFactory().getDataTransferOperations(irodsAccount);
iDropCore.setTransferManager(dataTransferOperations);
} catch (JargonException ex) {
Logger.getLogger(iDropLiteApplet.class.getName()).log(Level.SEVERE, null, ex);
}
-
+
try {
iDropCore.setTransferControlBlock(DefaultTransferControlBlock.instance());
} catch (JargonException ex) {
Logger.getLogger(iDropLiteApplet.class.getName()).log(Level.SEVERE, null, ex);
}
-
+
return true;
}
-
+
private void doPostInitWork() {
- CardLayout cl = (CardLayout) (testCardPanel.getLayout());
+ // get the available storage resorces to populate the drop-down
+
+ 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);
+ }
+
+ userNameLabel.setText(this.getIrodsAccount().getUserName());
+ lblZone.setText(this.getIrodsAccount().getZone());
+ CardLayout cl = (CardLayout) (testCardPanel.getLayout());
+
switch (displayMode) {
case 1:
log.info(">>>>>>>>> local/irods display mode 1");
@@ -370,6 +390,10 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
break;
case 3:
log.info(">>>>>>>>>shopping cart display mode 3");
+ lblZone.setVisible(false);
+ lblZoneLabel.setVisible(false);
+ lblUserNameLabel.setVisible(false);
+ userNameLabel.setVisible(false);
// need to make download destination text box background invisible here since
// Netbeans GUI builder will not preserve correct setting
txtDownloadTarget.setBackground(new Color(0, 0, 0, 0));
@@ -380,25 +404,25 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
setupProgressTable();
populateDownloadTableWithCartContents();
setupForIdropWebMode();
+
break;
default:
log.info(">>>>>>>>> no display mode, show local/rods display mode 1");
this.displayMode = 1;
cl.show(testCardPanel, "card2");
}
-
+
}
-
+
public void buildTargetTree() {
log.info("building tree to look at staging resource");
final iDropLiteApplet gui = this;
-
+
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
gui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
-
+
IRODSOutlineModel mdl = null;
log.info("building new iRODS tree");
try {
@@ -419,7 +443,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
/**
- * A tree has not been previosly loaded, establish the root (strict ACLs? Login preset?)
+ * A tree has not been previosly loaded, establish the root (strict ACLs? Login preset?)
*/
private void loadNewTree() throws JargonException, IdropException {
IRODSOutlineModel mdl;
@@ -441,7 +465,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
root.setPathOrName(basePath);
root.setObjectType(CollectionAndDataObjectListingEntry.ObjectType.COLLECTION);
}
-
+
irodsTree = new IRODSTree(gui);
IRODSNode rootNode = new IRODSNode(root,
getIrodsAccount(), getiDropCore().getIrodsFileSystem(), irodsTree);
@@ -464,7 +488,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
TreePath rootPath = TreeUtils.getPath(currentRoot);
TreePath[] currentPaths = irodsTree.getOutlineModel().getTreePathSupport().getExpandedDescendants(rootPath);
log.info("expanded paths:{}", currentPaths);
- gui.scrIrodsTreeView.getViewport().removeAll();
+ gui.scrIrodsTreeView.getViewport().removeAll();
irodsTree = null;
irodsTree = new IRODSTree(gui);
CollectionAndDataObjectListingEntry currentEntry = (CollectionAndDataObjectListingEntry) currentRoot.getUserObject();
@@ -476,9 +500,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
IRODSOutlineModel mdl = new IRODSOutlineModel(gui,
irodsFileSystemModel, new IRODSRowModel(), true,
"File System");
-
+
irodsTree.setModel(mdl);
- gui.scrIrodsTreeView.setViewportView(irodsTree);
+ gui.scrIrodsTreeView.setViewportView(irodsTree);
if (currentPaths != null) {
IRODSNode irodsNode = null;
TreePath pathOfExpandingNode = null;
@@ -497,11 +521,12 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
});
}
-
- /**
+
+ /**
* Establish base path (checking if strict acl's are in place
+ *
* @return <code>String</code> with the base path for the tree
- * @throws JargonException
+ * @throws JargonException
*/
private synchronized String getBasePath() throws JargonException {
String myBase = this.getiDropCore().getBasePath();
@@ -517,9 +542,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
myBase = "/";
}
}
-
+
return myBase;
-
+
}
// NEED TO REFACTOR ALL OF THE FOLLOWING DUPLICATION!!!!!!!!
@@ -531,36 +556,34 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
* 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 iDropLiteApplet gui = this;
-
+
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
-
+
initializeLocalFileTreeModel(null);
fileTree = new LocalFileTree(localFileModel, gui);
lstLocalDrives.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 = lstLocalDrives.getSelectedValue();
initializeLocalFileTreeModelWhenDriveIsSelected(selectedItem);
-
+
}
});
scrollLocalFileTree.setViewportView(fileTree);
@@ -569,9 +592,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlLocalTree.setVisible(false);
}
});
-
+
}
-
+
private void setUpUploadLocalFileSelectTree() {
/*
@@ -580,36 +603,34 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
* display an additional panel listing the other roots, and build the
* tree for the first drive encountered.
*/
-
+
if (fileUploadTree != null) {
log.info("file upload tree already initialized");
return;
}
-
+
log.info("building upload tree to look at local file system");
final iDropLiteApplet gui = this;
-
+
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
-
+
initializeUploadLocalFileTreeModel(null);
fileUploadTree = new LocalFileTree(localUploadFileModel, gui);
lstUploadLocalDrives.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
-
@Override
public void valueChanged(final ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
return;
}
-
+
log.debug("new uload local file system model");
log.debug("uload selection event:{}", e);
Object selectedItem = lstUploadLocalDrives.getSelectedValue();
initializeUploadLocalFileTreeModelWhenDriveIsSelected(selectedItem);
-
+
}
});
scrollUploadLocalTree.setViewportView(fileUploadTree);
@@ -618,18 +639,18 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlUploadLocalTree.setVisible(true);
}
});
-
+
}
-
+
private void initializeLocalFileTreeModelWhenDriveIsSelected(
final Object selectedDrive) {
if (selectedDrive == null) {
log.debug("selected drive is null, use the first one");
lstLocalDrives.setSelectedIndex(0);
-
+
localFileModel = new LocalFileSystemModel(new LocalFileNode(
new File((String) lstLocalDrives.getSelectedValue())));
-
+
fileTree.setModel(localFileModel);
} else {
log.debug(
@@ -639,15 +660,15 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
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");
@@ -659,28 +680,28 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlLocalRoots.setPreferredSize(new java.awt.Dimension(295, 39));
localFileModel = new LocalFileSystemModel(new LocalFileNode(
new File(roots.get(0))));
-
+
} else {
DefaultListModel listModel = new DefaultListModel();
for (String root : roots) {
listModel.addElement(root);
}
-
+
lstLocalDrives.setModel(listModel);
-
+
scrollLocalDrives.setVisible(true);
}
}
-
+
private void initializeUploadLocalFileTreeModelWhenDriveIsSelected(
final Object selectedDrive) {
if (selectedDrive == null) {
log.debug("selected drive is null, use the first one");
lstUploadLocalDrives.setSelectedIndex(0);
-
+
localUploadFileModel = new LocalFileSystemModel(new LocalFileNode(
new File((String) lstUploadLocalDrives.getSelectedValue())));
-
+
fileUploadTree.setModel(localUploadFileModel);
} else {
log.debug(
@@ -690,15 +711,15 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
localUploadFileModel = new LocalFileSystemModel(new LocalFileNode(
new File((String) selectedDrive)));
fileUploadTree.setModel(localUploadFileModel);
-
+
}
-
+
scrollUploadLocalDrives.setVisible(true);
}
-
+
private void initializeUploadLocalFileTreeModel(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");
@@ -710,31 +731,31 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlUploadRoots.setPreferredSize(new java.awt.Dimension(295, 54));
localUploadFileModel = new LocalFileSystemModel(new LocalFileNode(
new File(roots.get(0))));
-
+
} else {
DefaultListModel listModel = new DefaultListModel();
for (String root : roots) {
listModel.addElement(root);
}
-
+
lstUploadLocalDrives.setModel(listModel);
-
+
scrollUploadLocalDrives.setVisible(true);
}
}
-
+
private void populateUploadDestination() {
if ((uploadDest != null) && (uploadDest.length() > 0)) {
txtIRODSUploadDest.setText(uploadDest);
btnUploadBeginImport.setEnabled(true);
}
}
-
+
private void setupProgressTable() {
// load table cancel icon
java.net.URL imgURL = getClass().getResource("/cancel.gif");
-
+
if (imgURL != null) {
cancelIcon = new ImageIcon(imgURL, "image used to denote cancel or remove table entry");
} else {
@@ -747,7 +768,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
tblUploadTable1.setShowVerticalLines(false);
tblUploadTable1.getColumnModel().getColumn(3).setPreferredWidth(6);
tblUploadTable1.setRowHeight(24);
-
+
tblUploadTable1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
if (displayMode == 2) { // do some special stuff for Upload Mode
tblUploadTable1.setDropMode(DropMode.INSERT_ROWS);
@@ -768,7 +789,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
tblUploadTable1.getColumnModel().getColumn(4).setMinWidth(0);
tblUploadTable1.getColumnModel().getColumn(4).setMaxWidth(0);
tblUploadTable1.getColumnModel().getColumn(4).setPreferredWidth(0);
-
+
tblUploadTable1.getModel().addTableModelListener(applet);
// add renderer for file name in first column
@@ -781,22 +802,21 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
// save Table Model for later use
this.iDropCore.setUploadTableModel((DefaultTableModel) tblUploadTable1.getModel());
}
-
+
public IRODSAccount getIrodsAccount() {
synchronized (this) {
return this.iDropCore.getIrodsAccount();
}
}
-
+
public void showIdropException(Exception idropException) {
JOptionPane.showMessageDialog(this, idropException.getMessage(), "iDROP Exception", JOptionPane.WARNING_MESSAGE);
}
-
+
public void showMessageFromOperation(final String messageFromOperation) {
-
+
final iDropLiteApplet thisIdropGui = this;
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
JOptionPane.showMessageDialog(iDropCore.findAppletParentFrame(thisIdropGui), messageFromOperation, "iDROP Message",
@@ -804,13 +824,12 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
});
}
-
+
@Override
public void statusCallback(final TransferStatus ts) {
log.info("transfer status callback to iDropLiteApplet:{}", ts);
final iDropLiteApplet idrop = this;
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
log.info("in statusCallback thread");
@@ -820,7 +839,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
if (currentUploadFile != null) {
tableRow = getUploadTableProgressRow(currentUploadFile);
}
-
+
if (ts.getTransferState() == TransferStatus.TransferState.FAILURE) {
// an error occurs, stop the transfer
log.error("error occurred in transfer: {}", ts);
@@ -854,7 +873,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
TransferProgressInfo tpi = new TransferProgressInfo(ts.getTotalSize(), ts.getBytesTransfered(), 0, 0, true);
tblUploadTable1.getModel().setValueAt(tpi, tableRow, 2);
}
-
+
} else if (ts.getTransferState() == TransferStatus.TransferState.IN_PROGRESS_START_FILE) {
// start of a file operation
@@ -876,9 +895,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
tblUploadTable1.getModel().setValueAt(tpi, tableRow, 2);
}
}
-
+
} else if (ts.getTransferState() == TransferStatus.TransferState.IN_PROGRESS_COMPLETE_FILE) {
-
+
progressIntraFile.setMinimum(0);
progressIntraFile.setMaximum(10);
progressIntraFile.setValue(10);
@@ -903,9 +922,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
ts.getTotalFilesToTransfer(), ts.getTotalFilesTransferredSoFar());
tblUploadTable1.getModel().setValueAt(tpi, tableRow, 2);
}
-
+
} else {
-
+
transferStatusProgressBar.setMaximum(ts.getTotalFilesToTransfer());
transferStatusProgressBar.setValue(ts.getTotalFilesTransferredSoFar());
pbIdropWebModeDownloadProgress.setMaximum(ts.getTotalFilesToTransfer());
@@ -916,27 +935,26 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
lblTransferByteCounts.setText("Current File (kb):"
+ (ts.getBytesTransfered() / 1024) + " / "
+ (ts.getTotalSize() / 1024));
-
+
lblCurrentFile.setText(abbreviateFileName(ts.getSourceFileAbsolutePath()));
}
}
});
}
-
+
@Override
public void overallStatusCallback(final TransferStatus ts) {
// final IRODSOutlineModel irodsTreeModel = (IRODSOutlineModel) irodsTree.getModel();
final iDropLiteApplet idropGui = this;
idropGui.setTransferInProgress(true);
-
+
log.info("transfer OVERALL status callback to iDropLiteApplet:{}", ts);
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
log.info("in overallStatusCallback thread");
-
+
int tableRow = -1;
if (currentUploadFile != null) {
tableRow = getUploadTableProgressRow(currentUploadFile);
@@ -952,7 +970,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
&& idropGui.displayMode == 1) {
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);
@@ -972,7 +990,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
}
}
-
+
}
/*
@@ -995,16 +1013,16 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pbIdropWebModeDownloadProgress.setMinimum(0);
pbIdropWebModeDownloadProgress.setMaximum(ts.getTotalFilesToTransfer());
pbIdropWebModeDownloadProgress.setValue(0);
-
+
if ((tableRow >= 0)) {
TransferProgressInfo tpi = new TransferProgressInfo();
tblUploadTable1.getModel().setValueAt(tpi, tableRow, 2);
}
-
+
currentUploadFile = ts.getSourceFileAbsolutePath();
enableUploadButtons(false);
}
-
+
if (ts.getTransferState() == TransferStatus.TransferState.OVERALL_COMPLETION) {
if (tableRow >= 0) {
//tblUploadTable.getModel().setValueAt(false, tableRow, 2);
@@ -1042,29 +1060,29 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
}
});
-
+
}
-
+
private void clearProgressBar() {
lblTransferType.setText("");
lblTransferFilesCounts.setText("Files: / ");
-
+
lblTransferByteCounts.setText("Bytes (kb): / ");
-
+
lblCurrentFile.setText("");
transferStatusProgressBar.setMinimum(0);
transferStatusProgressBar.setMaximum(100);
transferStatusProgressBar.setValue(0);
-
+
pbIdropWebModeDownloadProgress.setMinimum(0);
pbIdropWebModeDownloadProgress.setMaximum(100);
pbIdropWebModeDownloadProgress.setValue(0);
}
-
+
public void setTransferInProgress(Boolean state) {
this.transferInProgress = state;
}
-
+
public Boolean isTransferInProgress() {
return this.transferInProgress;
}
@@ -1074,14 +1092,13 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
public void setTransferCancelled(Boolean state) {
this.transferCancelled = state;
}
-
+
public Boolean isTransferCancelled() {
return this.transferCancelled;
}
-
+
public void cancelTransfer() {
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
iDropCore.getTransferControlBlock().setCancelled(true);
@@ -1095,11 +1112,11 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
// not needed? end
private final String abbreviateFileName(final String fileName) {
-
+
if (fileName == null) {
throw new IllegalArgumentException("null fileName");
}
-
+
StringBuilder sb = new StringBuilder();
if (fileName.length() < 100) {
sb.append(fileName);
@@ -1109,11 +1126,11 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
sb.append(" ... ");
sb.append(fileName.substring(fileName.length() - 50));
}
-
+
return sb.toString();
-
+
}
-
+
private int getUploadTableProgressRow(String filename) {
int row = -1;
int numRows = tblUploadTable1.getModel().getRowCount();
@@ -1125,10 +1142,10 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
break;
}
}
-
+
return row;
}
-
+
private void enableUploadButtons(Boolean state) {
btnUploadBeginImport.setEnabled(state);
btnUploadCancel.setEnabled(state);
@@ -1136,10 +1153,10 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
btnBrowseIRODSUploadDest.setEnabled(state);
btnUploadUrl.setEnabled(state);
}
-
+
public void setTotalFileUpload(int total) {
String phrase = "Total Files To Upload: ";
-
+
if (total > 0) {
Integer itotal = new Integer(total);
lblUploadTotalFiles.setText(phrase.concat(itotal.toString()));
@@ -1147,7 +1164,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
lblUploadTotalFiles.setText(phrase);
}
}
-
+
public void setTotalSizeUpload(long total) {
String phrase = "Total File Size: ";
String postfix = " (kb)";
@@ -1158,17 +1175,17 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
lblUploadTotalSize.setText(phrase);
}
}
-
+
public void updateFileStats(DefaultTableModel tm) {
-
+
int numRows = tm.getRowCount();
long totalSize = 0;
int totalFiles = 0;
URL url = null;
URLConnection connection = null;
-
+
for (int i = 0; i < numRows; i++) {
-
+
String fileName = (String) tm.getValueAt(i, 0);
if (fileName != null) {
@@ -1206,14 +1223,14 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
setTotalFileUpload(totalFiles);
setTotalSizeUpload(totalSize);
}
-
+
@Override
public void tableChanged(TableModelEvent tme) {
int type = tme.getType();
int row = tme.getFirstRow();
int column = tme.getColumn();
DefaultTableModel tm = (DefaultTableModel) tblUploadTable1.getModel();
-
+
if (type == TableModelEvent.UPDATE && column == 3) {
//log.info("canceling or removing??");
if (isTransferInProgress()) {
@@ -1226,23 +1243,23 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
updateFileStats(tm);
}
}
-
+
public IRODSTree getIrodsTree() {
return irodsTree;
}
-
+
public iDropLiteCore getiDropCore() {
return iDropCore;
}
-
+
public LocalFileTree getFileTree() {
return fileTree;
}
-
+
public Outline getTreeStagingResource() {
return irodsTree;
}
-
+
private void collectDownloadTarget() {
int ret = dlgLocalFileChooser.showOpenDialog(iDropCore.findAppletParentFrame(this));
//int ret = dlgLocalFileChooser.showSaveDialog(this.applet); // update this so you can create a folder???
@@ -1254,10 +1271,10 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
}
}
-
+
private boolean tempOnlyAccount() {
String pswd = null;
-
+
try {
log.info("creating a shared (cached) temp account connection");
this.irodsAccount = new IRODSAccount(host, port, user, tempPswd, absPath, zone, defaultStorageResource);
@@ -1265,21 +1282,21 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
irodsAccount);
irodsFileSystem = new IRODSFileSystem(manager);
log.info("irodsFileSystem updated to utilize cache");
-
+
} catch (JargonException e2) {
Logger.getLogger(iDropLiteApplet.class.getName()).log(Level.SEVERE, null, e2);
return false;
}
-
+
return true;
}
-
+
private List<String> getCartFiles() {
List<String> cartContents = new ArrayList<String>();
FileShoppingCart cart = null;
-
+
log.info("retrieving cart shopping cart contents");
-
+
DataCacheServiceFactory dataCacheServiceFactory;
try {
dataCacheServiceFactory = new DataCacheServiceFactoryImpl(
@@ -1289,10 +1306,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
dataCacheServiceFactory);
log.info("getting cart as logged in user, key: {}", this.key);
if ((this.mode == 2) && (this.key != null) && (!this.key.isEmpty()) && (this.key != "undefined")) {
- cart = shoppingCartService.retreiveShoppingCartAsLoggedInUser(this.key);
- }
- else {
- log.error("could not create shopping cart");
+ cart = shoppingCartService.retreiveShoppingCartAsLoggedInUser(this.key);
+ } else {
+ log.error("could not create shopping cart");
showMessageFromOperation("Cannot retrieve files from shopping cart");
return cartContents;
}
@@ -1307,21 +1323,21 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
Logger.getLogger(iDropLiteApplet.class.getName()).log(Level.SEVERE, null, e);
showMessageFromOperation("Cannot retrieve files from shopping cart");
}
-
+
if (cart.hasItems()) {
cartContents = cart.getShoppingCartFileList();
}
-
+
log.info("returning contents of shopping cart {}", cartContents);
return cartContents;
}
-
+
private void populateDownloadTableWithCartContents() {
long fileSize = 0;
int fileType = iDropLiteApplet.uploadFile;
-
+
List<String> cartFiles = getCartFiles();
-
+
for (String cf : cartFiles) {
DefaultTableModel tm = (DefaultTableModel) tblUploadTable1.getModel();
Object[] rowData = new Object[5];
@@ -1345,19 +1361,19 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
tm.addRow(rowData);
}
}
-
+
private void setupForIdropWebMode() {
// set up listener to capture resize of applet - so if it gets really small it will switch to
// iDrop Web mode for shopping cart mode
this.addComponentListener(this);
checkForIdropWebMode();
}
-
+
private void checkForIdropWebMode() {
int width = this.getWidth();
int height = this.getHeight();
CardLayout cl = (CardLayout) (testCardPanel.getLayout());
-
+
if (width < 350 && height < 250) {
String target = txtDownloadTarget.getText();
if (target.length() > 0) {
@@ -1372,27 +1388,27 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
cl.show(testCardPanel, "card4"); // regular shopping cart mode
}
}
-
+
@Override
public void componentHidden(ComponentEvent arg0) {
// TODO Auto-generated method stub
}
-
+
@Override
public void componentMoved(ComponentEvent arg0) {
// TODO Auto-generated method stub
}
-
+
@Override
public void componentResized(ComponentEvent arg0) {
checkForIdropWebMode();
}
-
+
@Override
public void componentShown(ComponentEvent arg0) {
// TODO Auto-generated method stub
}
-
+
private void executeDownload() {
GetTransferRunner currentTransferRunner = null;
final List<File> sourceFiles = new ArrayList<File>();
@@ -1400,7 +1416,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
// make sure local destination is legal
final String targetPath = txtDownloadTarget.getText();
log.info("download destination is: {}", targetPath);
-
+
try {
if (!new File(targetPath).exists()) {
JOptionPane.showMessageDialog(this, "Please enter a valid local destination for download.");
@@ -1413,7 +1429,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
// now go through and process selected import files from table
if (!isTransferInProgress()) {
-
+
IRODSFileService irodsFS = null;
try {
irodsFS = new IRODSFileService(iDropCore.getIrodsAccount(), iDropCore.getIrodsFileSystem());
@@ -1454,10 +1470,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
}
- /** This method is called from within the init() method to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
+ /**
+ * This method is called from within the init() method 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
@@ -1571,12 +1586,22 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
btnIdropWebModeBeginDownload = new javax.swing.JButton();
pnlRestart = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
+ 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));
+ lblDefaultResource = new javax.swing.JLabel();
+ comboDefaultResource = new javax.swing.JComboBox();
setMinimumSize(new java.awt.Dimension(250, 200));
setPreferredSize(new java.awt.Dimension(700, 490));
pnllSeems2BneededForCorrectResizing.setPreferredSize(new java.awt.Dimension(720, 490));
- pnllSeems2BneededForCorrectResizing.setLayout(new java.awt.GridLayout(1, 1));
+ pnllSeems2BneededForCorrectResizing.setLayout(new java.awt.BorderLayout());
testCardPanel.setPreferredSize(new java.awt.Dimension(710, 490));
testCardPanel.setLayout(new java.awt.CardLayout());
@@ -1596,7 +1621,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlLocalToggleSizer.setPreferredSize(new java.awt.Dimension(150, 50));
- btnToggleLocalView.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ btnToggleLocalView.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
btnToggleLocalView.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnToggleLocalView.text")); // NOI18N
btnToggleLocalView.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -1611,7 +1636,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
.add(pnlLocalToggleSizerLayout.createSequentialGroup()
.addContainerGap()
.add(btnToggleLocalView)
- .addContainerGap(11, Short.MAX_VALUE))
+ .addContainerGap(12, Short.MAX_VALUE))
);
pnlLocalToggleSizerLayout.setVerticalGroup(
pnlLocalToggleSizerLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
@@ -1675,7 +1700,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlLocalRefreshButton.setPreferredSize(new java.awt.Dimension(0, 34));
pnlLocalRefreshButton.setRequestFocusEnabled(false);
- btnLocalRefresh.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ btnLocalRefresh.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
btnLocalRefresh.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnLocalRefresh.text")); // NOI18N
pnlLocalRefreshButton.add(btnLocalRefresh);
@@ -1721,11 +1746,11 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlIrodsTree.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
- tabIrodsViews.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ tabIrodsViews.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
pnlIrodsTreeView.setLayout(new java.awt.BorderLayout());
- btnIrodsTreeRefresh.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ btnIrodsTreeRefresh.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
btnIrodsTreeRefresh.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnIrodsTreeRefresh.text")); // NOI18N
btnIrodsTreeRefresh.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -1755,7 +1780,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
.add(pnlIrodsSearchLayout.createSequentialGroup()
.add(84, 84, 84)
.add(jLabel5)
- .addContainerGap(168, Short.MAX_VALUE))
+ .addContainerGap(117, Short.MAX_VALUE))
);
tabIrodsViews.addTab(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.pnlIrodsSearch.TabConstraints.tabTitle"), pnlIrodsSearch); // NOI18N
@@ -1764,11 +1789,11 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlIrodsTree.setLayout(pnlIrodsTreeLayout);
pnlIrodsTreeLayout.setHorizontalGroup(
pnlIrodsTreeLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
- .add(tabIrodsViews, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
+ .add(tabIrodsViews)
);
pnlIrodsTreeLayout.setVerticalGroup(
pnlIrodsTreeLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
- .add(tabIrodsViews, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 311, Short.MAX_VALUE)
+ .add(tabIrodsViews)
);
pnlSplitPaneLocalRemote.setRightComponent(pnlIrodsTree);
@@ -1788,11 +1813,11 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
lblTransferStatusMessage.setForeground(new java.awt.Color(0, 0, 255));
pnlTransferStatus.add(lblTransferStatusMessage, new java.awt.GridBagConstraints());
- lblTransferTypeLabel.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ lblTransferTypeLabel.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
lblTransferTypeLabel.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblTransferTypeLabel.text")); // NOI18N
pnlTransferType.add(lblTransferTypeLabel);
- lblTransferType.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ lblTransferType.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
lblTransferType.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblTransferType.text")); // NOI18N
pnlTransferType.add(lblTransferType);
@@ -1801,7 +1826,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
gridBagConstraints.gridy = 1;
pnlTransferStatus.add(pnlTransferType, gridBagConstraints);
- lblTransferFilesCounts.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ lblTransferFilesCounts.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
lblTransferFilesCounts.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblTransferFilesCounts.text")); // NOI18N
pnlTransferFileCounts.add(lblTransferFilesCounts);
@@ -1812,13 +1837,13 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlTransferByteCounts.setLayout(new java.awt.GridBagLayout());
- lblTransferByteCounts.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ lblTransferByteCounts.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
lblTransferByteCounts.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblTransferByteCounts.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
pnlTransferByteCounts.add(lblTransferByteCounts, gridBagConstraints);
- progressIntraFile.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ progressIntraFile.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(0, 20, 0, 0);
@@ -1833,7 +1858,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlTransferFileInfo.setLayout(new java.awt.GridBagLayout());
- lblCurrentFileLabel.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ lblCurrentFileLabel.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
lblCurrentFileLabel.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblCurrentFileLabel.text")); // NOI18N
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
@@ -1854,7 +1879,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
pnlIdropBottom.add(pnlTransferOverview, gridBagConstraints);
- transferStatusProgressBar.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ transferStatusProgressBar.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
transferStatusProgressBar.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
transferStatusProgressBar.setStringPainted(true);
gridBagConstraints = new java.awt.GridBagConstraints();
@@ -1880,7 +1905,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
jPanel8.setPreferredSize(new java.awt.Dimension(285, 20));
jPanel8.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
- jLabel6.setFont(new java.awt.Font("Lucida Grande", 1, 13));
+ jLabel6.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
jLabel6.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.jLabel6.text")); // NOI18N
jLabel6.setPreferredSize(new java.awt.Dimension(150, 17));
jPanel8.add(jLabel6);
@@ -1921,7 +1946,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
jPanel10.setPreferredSize(new java.awt.Dimension(310, 20));
jPanel10.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
- jLabel7.setFont(new java.awt.Font("Lucida Grande", 1, 13));
+ jLabel7.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
jLabel7.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.jLabel7.text")); // NOI18N
jPanel10.add(jLabel7);
@@ -1967,7 +1992,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlUploadRefreshButton.setRequestFocusEnabled(false);
pnlUploadRefreshButton.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 2, 6));
- btnUploadLocalRefresh.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ btnUploadLocalRefresh.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
btnUploadLocalRefresh.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_idroplite_refresh.png"))); // NOI18N
btnUploadLocalRefresh.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnUploadLocalRefresh.text")); // NOI18N
btnUploadLocalRefresh.setMaximumSize(new java.awt.Dimension(94, 34));
@@ -1980,7 +2005,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
});
pnlUploadRefreshButton.add(btnUploadLocalRefresh);
- btnUploadMove.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ btnUploadMove.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
btnUploadMove.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icon_idroplite_addtoqueue.png"))); // NOI18N
btnUploadMove.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnUploadMove.text")); // NOI18N
btnUploadMove.setMargin(new java.awt.Insets(0, 0, 0, 0));
@@ -1994,7 +2019,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
});
pnlUploadRefreshButton.add(btnUploadMove);
- btnUploadUrl.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ btnUploadUrl.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
btnUploadUrl.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnUploadUrl.text")); // NOI18N
btnUploadUrl.setEnabled(false);
btnUploadUrl.setMaximumSize(new java.awt.Dimension(0, 0));
@@ -2069,7 +2094,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
jPanel13.setLayout(jPanel13Layout);
jPanel13Layout.setHorizontalGroup(
jPanel13Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
- .add(0, 0, Short.MAX_VALUE)
+ .add(0, 80, Short.MAX_VALUE)
);
jPanel13Layout.setVerticalGroup(
jPanel13Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
@@ -2139,7 +2164,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlUploadToolStatus.setRequestFocusEnabled(false);
pnlUploadToolStatus.setLayout(new java.awt.BorderLayout());
- lblUploadTotalFiles.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ lblUploadTotalFiles.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
lblUploadTotalFiles.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblUploadTotalFiles.text")); // NOI18N
lblUploadTotalFiles.setBorder(javax.swing.BorderFactory.createEmptyBorder(4, 0, 0, 0));
lblUploadTotalFiles.setMaximumSize(new java.awt.Dimension(122, 24));
@@ -2147,7 +2172,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
lblUploadTotalFiles.setPreferredSize(new java.awt.Dimension(122, 30));
pnlUploadToolStatus.add(lblUploadTotalFiles, java.awt.BorderLayout.NORTH);
- lblUploadTotalSize.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ lblUploadTotalSize.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
lblUploadTotalSize.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblUploadTotalSize.text")); // NOI18N
lblUploadTotalSize.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 6, 0));
lblUploadTotalSize.setPreferredSize(new java.awt.Dimension(83, 30));
@@ -2159,7 +2184,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
jPanel17.setPreferredSize(new java.awt.Dimension(240, 40));
jPanel17.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT, 4, 12));
- btnUploadCancel.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ btnUploadCancel.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
btnUploadCancel.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnUploadCancel.text")); // NOI18N
btnUploadCancel.setMaximumSize(new java.awt.Dimension(116, 34));
btnUploadCancel.setMinimumSize(new java.awt.Dimension(116, 34));
@@ -2173,7 +2198,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
});
jPanel17.add(btnUploadCancel);
- btnUploadBeginImport.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ btnUploadBeginImport.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
btnUploadBeginImport.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnUploadBeginImport.text")); // NOI18N
btnUploadBeginImport.setEnabled(false);
btnUploadBeginImport.setMaximumSize(new java.awt.Dimension(92, 34));
@@ -2194,7 +2219,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlIRODSUploadBrowse.setPreferredSize(new java.awt.Dimension(215, 54));
pnlIRODSUploadBrowse.setLayout(new java.awt.BorderLayout());
- jLabel8.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ jLabel8.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jLabel8.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.jLabel8.text")); // NOI18N
jLabel8.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
@@ -2203,7 +2228,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
jLabel8.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
pnlIRODSUploadBrowse.add(jLabel8, java.awt.BorderLayout.WEST);
- btnBrowseIRODSUploadDest.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ btnBrowseIRODSUploadDest.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
btnBrowseIRODSUploadDest.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnBrowseIRODSUploadDest.text")); // NOI18N
btnBrowseIRODSUploadDest.setMaximumSize(new java.awt.Dimension(155, 30));
btnBrowseIRODSUploadDest.setMinimumSize(new java.awt.Dimension(155, 30));
@@ -2216,7 +2241,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlIRODSUploadBrowse.add(btnBrowseIRODSUploadDest, java.awt.BorderLayout.EAST);
txtIRODSUploadDest.setEditable(false);
- txtIRODSUploadDest.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ txtIRODSUploadDest.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
txtIRODSUploadDest.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.txtIRODSUploadDest.text")); // NOI18N
txtIRODSUploadDest.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 5, 0, 0));
txtIRODSUploadDest.setDragEnabled(false);
@@ -2272,18 +2297,18 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
jPanel1.setPreferredSize(new java.awt.Dimension(450, 38));
jPanel1.setLayout(new java.awt.BorderLayout());
- jLabel2.setFont(new java.awt.Font("Lucida Grande", 0, 12));
+ jLabel2.setFont(new java.awt.Font("Lucida Grande", 0, 12)); // NOI18N
jLabel2.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.jLabel2.text")); // NOI18N
jPanel1.add(jLabel2, java.awt.BorderLayout.WEST);
txtDownloadTarget.setEditable(false);
- txtDownloadTarget.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ txtDownloadTarget.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
txtDownloadTarget.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.txtDownloadTarget.text")); // NOI18N
txtDownloadTarget.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
txtDownloadTarget.setPreferredSize(new java.awt.Dimension(20, 28));
jPanel1.add(txtDownloadTarget, java.awt.BorderLayout.CENTER);
- btnBrowseDownloadTarget.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ btnBrowseDownloadTarget.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
btnBrowseDownloadTarget.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.btnBrowseDownloadTarget.text")); // NOI18N
btnBrowseDownloadTarget.setPreferredSize(new java.awt.Dimension(140, 30));
btnBrowseDownloadTarget.addActionListener(new java.awt.event.ActionListener() {
@@ -2323,7 +2348,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
jPanel4.setPreferredSize(new java.awt.Dimension(160, 40));
jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
- bntBeginDownload.setFont(new java.awt.Font("Lucida Grande", 0, 11));
+ bntBeginDownload.setFont(new java.awt.Font("Lucida Grande", 0, 11)); // NOI18N
bntBeginDownload.setLabel(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.bntBeginDownload.label")); // NOI18N
bntBeginDownload.setMaximumSize(new java.awt.Dimension(101, 30));
bntBeginDownload.setMinimumSize(new java.awt.Dimension(101, 30));
@@ -2353,7 +2378,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
pnlIdropWebModeText.setPreferredSize(new java.awt.Dimension(682, 30));
pnlIdropWebModeText.setLayout(new java.awt.BorderLayout());
- jLabel1.setFont(new java.awt.Font("Lucida Grande", 0, 10));
+ jLabel1.setFont(new java.awt.Font("Lucida Grande", 0, 10)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.jLabel1.text")); // NOI18N
jLabel1.setMinimumSize(new java.awt.Dimension(57, 18));
@@ -2443,14 +2468,50 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
testCardPanel.add(pnlRestart, "card6");
- pnllSeems2BneededForCorrectResizing.add(testCardPanel);
+ pnllSeems2BneededForCorrectResizing.add(testCardPanel, java.awt.BorderLayout.CENTER);
+
+ pnlBottomGutter.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
+ pnlBottomGutter.setMaximumSize(new java.awt.Dimension(2147483647, 10));
+
+ lblUserNameLabel.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
+ lblUserNameLabel.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblUserNameLabel.text")); // NOI18N
+ pnlHostInfo.add(lblUserNameLabel);
+
+ userNameLabel.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.userNameLabel.text")); // NOI18N
+ userNameLabel.setMinimumSize(null);
+ userNameLabel.setPreferredSize(null);
+ pnlHostInfo.add(userNameLabel);
+ pnlHostInfo.add(filler1);
+
+ lblZoneLabel.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
+ lblZoneLabel.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblZoneLabel.text")); // NOI18N
+ pnlHostInfo.add(lblZoneLabel);
+
+ lblZone.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblZone.text")); // NOI18N
+ pnlHostInfo.add(lblZone);
+ pnlHostInfo.add(filler2);
+
+ lblDefaultResource.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
+ lblDefaultResource.setText(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblDefaultResource.text")); // NOI18N
+ pnlHostInfo.add(lblDefaultResource);
+ lblDefaultResource.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(iDropLiteApplet.class, "iDropLiteApplet.lblDefaultResource.AccessibleContext.accessibleName")); // NOI18N
+
+ comboDefaultResource.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ comboDefaultResourceActionPerformed(evt);
+ }
+ });
+ pnlHostInfo.add(comboDefaultResource);
+
+ pnlBottomGutter.add(pnlHostInfo);
+
+ pnllSeems2BneededForCorrectResizing.add(pnlBottomGutter, java.awt.BorderLayout.SOUTH);
getContentPane().add(pnllSeems2BneededForCorrectResizing, java.awt.BorderLayout.CENTER);
}// </editor-fold>//GEN-END:initComponents
private void btnToggleLocalViewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnToggleLocalViewActionPerformed
java.awt.EventQueue.invokeLater(new Runnable() {
-
@Override
public void run() {
pnlLocalTree.setVisible(btnToggleLocalView.isSelected());
@@ -2460,17 +2521,17 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
});
}//GEN-LAST:event_btnToggleLocalViewActionPerformed
-
+
private void btnIrodsTreeRefreshActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnIrodsTreeRefreshActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_btnIrodsTreeRefreshActionPerformed
-
+
private void btnUploadLocalRefreshActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUploadLocalRefreshActionPerformed
setUpUploadLocalFileSelectTree();
}//GEN-LAST:event_btnUploadLocalRefreshActionPerformed
-
+
private void btnUploadMoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUploadMoveActionPerformed
-
+
int fileType = iDropLiteApplet.uploadFile;
TreePath[] paths = fileUploadTree.getSelectionPaths();
Object selectedDrive = lstUploadLocalDrives.getSelectedValue();
@@ -2493,9 +2554,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
tm.addRow(rowData);
}
}
-
+
}//GEN-LAST:event_btnUploadMoveActionPerformed
-
+
private void btnUploadCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUploadCancelActionPerformed
DefaultTableModel tm = (DefaultTableModel) tblUploadTable1.getModel();
int numRows = tm.getRowCount();
@@ -2505,7 +2566,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
tm.fireTableRowsDeleted(0, numRows - 1);
}
}//GEN-LAST:event_btnUploadCancelActionPerformed
-
+
private void btnBrowseIRODSUploadDestActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBrowseIRODSUploadDestActionPerformed
IRODSFinderDialog finderDialog = new IRODSFinderDialog(true, iDropCore);
// get current size of applet
@@ -2527,20 +2588,20 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
finderDialog.dispose();
}//GEN-LAST:event_btnBrowseIRODSUploadDestActionPerformed
-
+
private void txtIRODSUploadDestActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtIRODSUploadDestActionPerformed
btnUploadBeginImport.setEnabled(txtIRODSUploadDest.getText().length() > 0);
}//GEN-LAST:event_txtIRODSUploadDestActionPerformed
-
+
private void btnUploadBeginImportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUploadBeginImportActionPerformed
-
+
PutTransferRunner currentTransferRunner = null;
final List<UploadDataObj> sourceFiles = new ArrayList<UploadDataObj>();
// make sure IRODS destination is legal
final String targetPath = txtIRODSUploadDest.getText();
log.info("upload destination is: {}", targetPath);
-
+
try {
IRODSFileService irodsFS = new IRODSFileService(iDropCore.getIrodsAccount(), iDropCore.getIrodsFileSystem());
IRODSFile ifile = irodsFS.getIRODSFileForPath(targetPath);
@@ -2563,44 +2624,44 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
//this.filesInTable = rows; // reset to 0 in overall status callback when all files have been transferred
this.filesInTable = 0; // #833 ignore items in table that have already been uploaded
for (int row = 0; row < rows; row++) {
- // first check to see if the file has already been 100% uploaded, and if so ignore
- TransferProgressInfo progressInfo = (TransferProgressInfo)tblUploadTable1.getValueAt(row, 2);
- if (progressInfo.getPercentDone() < 100) {
- this.filesInTable++; // now set count of files to be uploaded
- if ((Integer) tblUploadTable1.getValueAt(row, 4) == iDropLiteApplet.uploadURL) { // this is an URL
- sourceFiles.add(new UploadDataObj((String) tblUploadTable1.getValueAt(row, 0), Boolean.TRUE));
- } else { // this is just a regular file or folder
- sourceFiles.add(new UploadDataObj(new File((String) tblUploadTable1.getValueAt(row, 0))));
- }
- }
+ // first check to see if the file has already been 100% uploaded, and if so ignore
+ TransferProgressInfo progressInfo = (TransferProgressInfo) tblUploadTable1.getValueAt(row, 2);
+ if (progressInfo.getPercentDone() < 100) {
+ this.filesInTable++; // now set count of files to be uploaded
+ if ((Integer) tblUploadTable1.getValueAt(row, 4) == iDropLiteApplet.uploadURL) { // this is an URL
+ sourceFiles.add(new UploadDataObj((String) tblUploadTable1.getValueAt(row, 0), Boolean.TRUE));
+ } else { // this is just a regular file or folder
+ sourceFiles.add(new UploadDataObj(new File((String) tblUploadTable1.getValueAt(row, 0))));
+ }
+ }
}
// set Upload button test to Cancel
// make sure there is stuff to upload
- if ( sourceFiles.size() > 0) {
- try {
- currentTransferRunner = new PutTransferRunner(applet, targetPath, sourceFiles);
- final Thread transferThread = new Thread(currentTransferRunner);
- log.info("launching transfer thread");
- // close so that transfer thread can grab account
- irodsFileSystem.closeAndEatExceptions();
- transferThread.start();
- //transferThread.join();
- } catch (Exception e) {
- log.error("exception choosings iRODS file");
- throw new IdropRuntimeException("exception choosing irods file", e);
- } finally {
- iDropCore.getIrodsFileSystem().closeAndEatExceptions();
- }
+ if (sourceFiles.size() > 0) {
+ try {
+ currentTransferRunner = new PutTransferRunner(applet, targetPath, sourceFiles);
+ final Thread transferThread = new Thread(currentTransferRunner);
+ log.info("launching transfer thread");
+ // close so that transfer thread can grab account
+ irodsFileSystem.closeAndEatExceptions();
+ transferThread.start();
+ //transferThread.join();
+ } catch (Exception e) {
+ log.error("exception choosings iRODS file");
+ throw new IdropRuntimeException("exception choosing irods file", e);
+ } finally {
+ iDropCore.getIrodsFileSystem().closeAndEatExceptions();
+ }
}
}
-
+
}//GEN-LAST:event_btnUploadBeginImportActionPerformed
-
+
private void btnBrowseDownloadTargetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBrowseDownloadTargetActionPerformed
collectDownloadTarget();
}//GEN-LAST:event_btnBrowseDownloadTargetActionPerformed
-
+
private void bntBeginDownloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bntBeginDownloadActionPerformed
GetTransferRunner currentTransferRunner = null;
final List<File> sourceFiles = new ArrayList<File>();
@@ -2608,7 +2669,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
// make sure local destination is legal
final String targetPath = txtDownloadTarget.getText();
log.info("download destination is: {}", targetPath);
-
+
try {
if (!new File(targetPath).exists()) {
JOptionPane.showMessageDialog(this, "Please enter a valid local destination for download.");
@@ -2621,7 +2682,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
// now go through and process selected import files from table
if (!isTransferInProgress()) {
-
+
IRODSFileService irodsFS = null;
try {
irodsFS = new IRODSFileService(iDropCore.getIrodsAccount(), iDropCore.getIrodsFileSystem());
@@ -2661,21 +2722,27 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
}
}
}//GEN-LAST:event_bntBeginDownloadActionPerformed
-
+
private void btnUploadUrlActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUploadUrlActionPerformed
UploadFromURLDialog dlgUploadFromURL = new UploadFromURLDialog(this, true);
dlgUploadFromURL.setSize(495, 200);
dlgUploadFromURL.setLocationRelativeTo(iDropCore.findAppletParentFrame(this));
dlgUploadFromURL.setVisible(true);
}//GEN-LAST:event_btnUploadUrlActionPerformed
-
+
private void btnIdropWebModeTargetBrowseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnIdropWebModeTargetBrowseActionPerformed
collectDownloadTarget();
}//GEN-LAST:event_btnIdropWebModeTargetBrowseActionPerformed
-
+
private void btnIdropWebModeBeginDownloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnIdropWebModeBeginDownloadActionPerformed
executeDownload();
}//GEN-LAST:event_btnIdropWebModeBeginDownloadActionPerformed
+
+ private void comboDefaultResourceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboDefaultResourceActionPerformed
+
+ String newResource = (String) comboDefaultResource.getSelectedItem();
+ this.getiDropCore().getIrodsAccount().setDefaultStorageResource(newResource);
+ }//GEN-LAST:event_comboDefaultResourceActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton bntBeginDownload;
private javax.swing.JButton btnBrowseDownloadTarget;
@@ -2690,6 +2757,9 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
private javax.swing.JButton btnUploadLocalRefresh;
private javax.swing.JButton btnUploadMove;
private javax.swing.JButton btnUploadUrl;
+ private javax.swing.JComboBox comboDefaultResource;
+ private javax.swing.Box.Filler filler1;
+ private javax.swing.Box.Filler filler2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
@@ -2714,6 +2784,7 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
private javax.swing.JScrollPane jScrollPane5;
private javax.swing.JLabel lblCurrentFile;
private javax.swing.JLabel lblCurrentFileLabel;
+ private javax.swing.JLabel lblDefaultResource;
private javax.swing.JLabel lblTransferByteCounts;
private javax.swing.JLabel lblTransferFilesCounts;
private javax.swing.JLabel lblTransferStatusMessage;
@@ -2721,13 +2792,18 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
private javax.swing.JLabel lblTransferTypeLabel;
private javax.swing.JLabel lblUploadTotalFiles;
private javax.swing.JLabel lblUploadTotalSize;
+ private javax.swing.JLabel lblUserNameLabel;
+ private javax.swing.JLabel lblZone;
+ private javax.swing.JLabel lblZoneLabel;
private javax.swing.JList lstLocalDrives;
private javax.swing.JList lstUploadLocalDrives;
private javax.swing.JProgressBar pbIdropWebModeDownloadProgress;
+ private javax.swing.JPanel pnlBottomGutter;
private javax.swing.JPanel pnlDownloadButtons;
private javax.swing.JPanel pnlDownloadModeTarget;
private javax.swing.JPanel pnlDownloadProgressTable;
private javax.swing.JPanel pnlDrivesFiller;
+ private javax.swing.JPanel pnlHostInfo;
private javax.swing.JPanel pnlIRODSUploadBrowse;
private javax.swing.JPanel pnlIdropBottom;
private javax.swing.JPanel pnlIdropWebMode;
@@ -2784,36 +2860,37 @@ public class iDropLiteApplet extends javax.swing.JApplet implements TransferStat
private javax.swing.JTextField txtDownloadTarget;
private javax.swing.JTextField txtIRODSUploadDest;
private javax.swing.JTextField txtIdropWebModeDownloadTarget;
+ private javax.swing.JLabel userNameLabel;
// End of variables declaration//GEN-END:variables
@Override
public CallbackResponse transferAsksWhetherToForceOperation(String irodsAbsolutePath, boolean isCollection) {
-
- CallbackResponse response = CallbackResponse.YES_FOR_ALL;;
+
+ CallbackResponse response = CallbackResponse.YES_FOR_ALL;;
StringBuilder msg = new StringBuilder(isCollection ? "Collection '" : "Data Object '");
msg.append(irodsAbsolutePath);
msg.append("' already exists. Do you wish to overwrite?");
-
+
// create OptionsPane dialog and set default to YES_FOR_ALL
Object[] options = {"No to All", "No", "Yes to All", "Yes"};
- int answer = JOptionPane.showOptionDialog(this, msg, "Confirm Transfer Overwrite",
- JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,
+ int answer = JOptionPane.showOptionDialog(this, msg, "Confirm Transfer Overwrite",
+ JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,
javax.swing.UIManager.getIcon("OptionPane.questionIcon"), options, options[2]);
// return correct response for button selection
- switch(answer) {
- case 0:
- response = CallbackResponse.NO_FOR_ALL;
- break;
- case 1:
- response = CallbackResponse.NO_THIS_FILE;
- break;
- case 2:
- response = CallbackResponse.YES_FOR_ALL;
- break;
- case 3:
- response = CallbackResponse.YES_THIS_FILE;
- break;
+ switch (answer) {
+ case 0:
+ response = CallbackResponse.NO_FOR_ALL;
+ break;
+ case 1:
+ response = CallbackResponse.NO_THIS_FILE;
+ break;
+ case 2:
+ response = CallbackResponse.YES_FOR_ALL;
+ break;
+ case 3:
+ response = CallbackResponse.YES_THIS_FILE;
+ break;
}
return response;
diff --git a/idrop-lite/src/main/resources/org/irods/jargon/idrop/lite/Bundle.properties b/idrop-lite/src/main/resources/org/irods/jargon/idrop/lite/Bundle.properties
index 06840c3..127bb51 100644
--- a/idrop-lite/src/main/resources/org/irods/jargon/idrop/lite/Bundle.properties
+++ b/idrop-lite/src/main/resources/org/irods/jargon/idrop/lite/Bundle.properties
@@ -43,3 +43,9 @@ iDropLiteApplet.jLabel1.text=<html><p>Select a download location then click Begi
iDropLiteApplet.jLabel2.text=Destination:
iDropLiteApplet.bntBeginDownload.label=Download
iDropLiteApplet.jLabel3.text=Applet has been disconnected. Please reload.
+iDropLiteApplet.lblUserNameLabel.text=User Name:
+iDropLiteApplet.lblDefaultResource.text=Resource:
+iDropLiteApplet.lblZone.text=this is the zone
+iDropLiteApplet.lblZoneLabel.text=Zone:
+iDropLiteApplet.userNameLabel.text=usernamelabel
+iDropLiteApplet.lblDefaultResource.AccessibleContext.accessibleName=Resource:
diff --git a/idrop-swing/pom.xml b/idrop-swing/pom.xml
index d203e92..ae8224c 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.2-SNAPSHOT</version>
+ <version>2.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.irods.idrop</groupId>
@@ -106,7 +105,7 @@
<!-- used to automatically identify the jar containing the main class. -->
<!-- this is perhaps going to change -->
- <mainClass>org.irods.jargon.idrop.desktop.systraygui.StartupSequencer</mainClass>
+ <mainClass>org.irods.jargon.idrop.desktop.systraygui.IDROPDesktop</mainClass>
</jnlp>
<!-- SIGNING -->
@@ -233,5 +232,40 @@
</plugin>
</plugins>
+ <pluginManagement>
+ <plugins>
+ <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>
+ org.apache.maven.plugins
+ </groupId>
+ <artifactId>
+ maven-antrun-plugin
+ </artifactId>
+ <versionRange>
+ [1.3,)
+ </versionRange>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore />
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
</project>
diff --git a/idrop-swing/release_notes.txt b/idrop-swing/release_notes.txt
index a7a90b1..1b53861 100644
--- a/idrop-swing/release_notes.txt
+++ b/idrop-swing/release_notes.txt
@@ -1,11 +1,13 @@
*'''Project''': iDrop-swing- Desktop iRODS transfer manager
-*'''Date''': 10/23/2012
-*'''Release Version''': 1.0.2-beta1
-*'''git tag''': 1.0.2-beta1
+*'''Date''': xx/xx/xx
+*'''Release Version''': 1.0.X
+*'''git tag''': 1.0.X
==News==
+post 1.0.2 release snapshot (work in progress)
+
This is the iDrop desktop transfer manager client. iDrop runs in the system tray of your favorite operating system, and can manage transfers between your computer and iRODS, and manage data once in iRODS.
iDrop also automates synchronization between your desktop and iRODS. There is an initial local -> iRODS backup capability, with automatic version of files within iRODS. Other modes are in development
@@ -22,15 +24,13 @@ iDrop-swing uses Maven for dependency management. See the pom.xml file for refe
Note that the following bug and feature requests are logged in GForge with related commit information [[https://code.renci.org/gf/project/irodsidrop/tracker/]]
==Features==
+*[#1092] add reconnect option to iDrop
+**Added preferences panel option and idrop.properties to set reconnect to 'true'. Emulates -T option for put/get
-*[#870] jargon support for PAM
-** added support for PAM logins
-
-*[#1011] add a dedicated doAuthentication method to irodsAccessObjectFactory
==Bug Fixes==
-
-
+* [#1093] Broken pipe error did not propogate in parallel transfer
+**Minor fixes to better propogate errors to queue manager
==Outstanding Issues==
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.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.form
index bbe7b36..0fe055a 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.form
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPConfigurationPanel.form
@@ -425,6 +425,20 @@
<EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="checkAllowReroutingItemStateChanged"/>
</Events>
</Component>
+ <Component class="javax.swing.JCheckBox" name="checkConnectionRestart">
+ <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="IDROPConfigurationPanel.checkConnectionRestart.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="IDROPConfigurationPanel.checkConnectionRestart.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="checkConnectionRestartItemStateChanged"/>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="checkConnectionRestartActionPerformed"/>
+ </Events>
+ </Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="plnPipelineConfiguration">
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 61360c0..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
@@ -168,6 +168,7 @@ public class IDROPConfigurationPanel extends javax.swing.JDialog {
checkLogSuccessfulTransfer = new javax.swing.JCheckBox();
checkVerifyChecksumOnTransfer = new javax.swing.JCheckBox();
checkAllowRerouting = new javax.swing.JCheckBox();
+ checkConnectionRestart = new javax.swing.JCheckBox();
plnPipelineConfiguration = new javax.swing.JPanel();
lblIrodsSocketTimeout = new javax.swing.JLabel();
spinnerIrodsSocketTimeout = new javax.swing.JSpinner();
@@ -457,6 +458,20 @@ public class IDROPConfigurationPanel extends javax.swing.JDialog {
});
pnlTransferManagement.add(checkAllowRerouting);
+ checkConnectionRestart.setText(org.openide.util.NbBundle.getMessage(IDROPConfigurationPanel.class, "IDROPConfigurationPanel.checkConnectionRestart.text")); // NOI18N
+ checkConnectionRestart.setToolTipText(org.openide.util.NbBundle.getMessage(IDROPConfigurationPanel.class, "IDROPConfigurationPanel.checkConnectionRestart.toolTipText")); // NOI18N
+ checkConnectionRestart.addItemListener(new java.awt.event.ItemListener() {
+ public void itemStateChanged(java.awt.event.ItemEvent evt) {
+ checkConnectionRestartItemStateChanged(evt);
+ }
+ });
+ checkConnectionRestart.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ checkConnectionRestartActionPerformed(evt);
+ }
+ });
+ pnlTransferManagement.add(checkConnectionRestart);
+
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
@@ -1270,6 +1285,29 @@ public class IDROPConfigurationPanel extends javax.swing.JDialog {
idropGui.reinitializeForChangedIRODSAccount();
}//GEN-LAST:event_comboPrefsDefaultResourceActionPerformed
+ private void checkConnectionRestartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkConnectionRestartActionPerformed
+
+
+
+
+
+ }//GEN-LAST:event_checkConnectionRestartActionPerformed
+
+ private void checkConnectionRestartItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_checkConnectionRestartItemStateChanged
+ boolean isSelected = false;
+ if (evt.getStateChange() == ItemEvent.SELECTED) {
+ isSelected = true;
+ }
+ log.info("updating connection restart to:{}", isSelected);
+ try {
+ idropCore.getIdropConfigurationService().updateConfig(IdropConfigurationService.IRODS_CONNECTION_RESTART, Boolean.toString(isSelected));
+ idropCore.getIdropConfigurationService().updateJargonPropertiesBasedOnIDROPConfig();
+ } catch (Exception ex) {
+ log.error("error setting property", ex);
+ throw new IdropRuntimeException(ex);
+ }
+ }//GEN-LAST:event_checkConnectionRestartItemStateChanged
+
private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
@@ -1690,6 +1728,7 @@ public class IDROPConfigurationPanel extends javax.swing.JDialog {
private javax.swing.ButtonGroup buttonGroupSynchMode;
private javax.swing.JCheckBox checkAllowParallelTransfers;
private javax.swing.JCheckBox checkAllowRerouting;
+ private javax.swing.JCheckBox checkConnectionRestart;
private javax.swing.JCheckBox checkLogSuccessfulTransfer;
private javax.swing.JCheckBox checkShowFileProgress;
private javax.swing.JCheckBox checkShowGUI;
@@ -1783,6 +1822,7 @@ public class IDROPConfigurationPanel extends javax.swing.JDialog {
spinnerIrodsParallelSocketTimeout.setValue(idropConfig.getIrodsParallelConnectionTimeout());
spinnerIrodsMaxParallelThreads.setValue(idropConfig.getIrodsParallelTransferMaxThreads());
checkAllowParallelTransfers.setSelected(idropConfig.isUseParallelTransfers());
+ checkConnectionRestart.setSelected(idropConfig.isConnectionRestart());
checkUseNIOForParallelTransfers.setSelected(idropConfig.isUseNIOForParallelTransfers());
txtInternalInputBufferSize.setText(String.valueOf(idropConfig.getInternalInputStreamBufferSize()));
txtInternalOutputBufferSize.setText(String.valueOf(idropConfig.getInternalOutputStreamBufferSize()));
@@ -1843,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/StartupSequencer.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPDesktop.java
index bfd9dfd..72feca9 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/StartupSequencer.java
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IDROPDesktop.java
@@ -28,14 +28,14 @@ import org.slf4j.LoggerFactory;
*
* @author Mike Conway - DICE (www.irods.org)
*/
-public class StartupSequencer {
+public class IDROPDesktop {
/**
* NOTE this class is in transition!!!!!!
*/
private iDrop idrop;
private IDROPCore idropCore;
- private static final org.slf4j.Logger log = LoggerFactory.getLogger(StartupSequencer.class);
+ private static final org.slf4j.Logger log = LoggerFactory.getLogger(IDROPDesktop.class);
public static final int STARTUP_SEQUENCE_PAUSE_INTERVAL = 1000;
public void doStartupSequence() {
@@ -55,7 +55,7 @@ public class StartupSequencer {
try {
idropCore.setIrodsFileSystem(IRODSFileSystem.instance());
} catch (JargonException ex) {
- Logger.getLogger(StartupSequencer.class.getName()).log(
+ Logger.getLogger(IDROPDesktop.class.getName()).log(
Level.SEVERE, null, ex);
}
@@ -133,7 +133,7 @@ public class StartupSequencer {
JOptionPane.OK_OPTION);
System.exit(1);
} catch (IdropException ex) {
- Logger.getLogger(StartupSequencer.class.getName()).log(
+ Logger.getLogger(IDROPDesktop.class.getName()).log(
Level.SEVERE, null, ex);
throw new IdropRuntimeException(ex);
}
@@ -142,7 +142,7 @@ public class StartupSequencer {
try {
idropCore.getIdropConfigurationService().pushIDROPConfigToJargonAndTransfer();
} catch (Exception ex) {
- Logger.getLogger(StartupSequencer.class.getName()).log(
+ Logger.getLogger(IDROPDesktop.class.getName()).log(
Level.SEVERE, null, ex);
throw new IdropRuntimeException(ex);
}
@@ -179,7 +179,7 @@ public class StartupSequencer {
idropCore.setTransferManager(new TransferManagerImpl(idropCore.getIrodsFileSystem(), idrop));
idropCore.getIdropConfigurationService().updateTransferOptions();
} catch (JargonException ex) {
- Logger.getLogger(StartupSequencer.class.getName()).log(
+ Logger.getLogger(IDROPDesktop.class.getName()).log(
Level.SEVERE, null, ex);
throw new IdropRuntimeException("error creating transferManager",
ex);
@@ -200,7 +200,7 @@ public class StartupSequencer {
idropSplashWindow.toFront();
}
} catch (JargonException ex) {
- Logger.getLogger(StartupSequencer.class.getName()).log(
+ Logger.getLogger(IDROPDesktop.class.getName()).log(
Level.SEVERE, null, ex);
throw new IdropRuntimeException("error evaluating current queue",
ex);
@@ -257,7 +257,7 @@ public class StartupSequencer {
idropCore.setQueueTimer(timer);
} catch (IdropException ex) {
- Logger.getLogger(StartupSequencer.class.getName()).log(
+ Logger.getLogger(IDROPDesktop.class.getName()).log(
Level.SEVERE, null, ex);
}
@@ -271,7 +271,7 @@ public class StartupSequencer {
idropSplashWindow.setVisible(false);
idropSplashWindow = null;
} catch (Exception e) {
- Logger.getLogger(StartupSequencer.class.getName()).log(
+ Logger.getLogger(IDROPDesktop.class.getName()).log(
Level.SEVERE, null, e);
throw new IdropRuntimeException("error starting idrop gui", e);
@@ -313,7 +313,7 @@ public class StartupSequencer {
idropPreBootstrapperService.storePriorVersion(derivedConfigHomeDirectory, currentVersion);
} catch (IdropException ex) {
- Logger.getLogger(StartupSequencer.class.getName()).log(
+ Logger.getLogger(IDROPDesktop.class.getName()).log(
Level.SEVERE, null, ex);
throw new IdropRuntimeException(ex);
}
@@ -337,7 +337,7 @@ public class StartupSequencer {
* @param args the command line arguments
*/
public static void main(final String args[]) throws InterruptedException {
- StartupSequencer startupSequencer = new StartupSequencer();
+ IDROPDesktop startupSequencer = new IDROPDesktop();
try {
startupSequencer.doStartupSequence();
} catch (Exception e) {
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..3891b1f
--- /dev/null
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/IRODSInfoDialog.java
@@ -0,0 +1,1821 @@
+/*
+ * 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.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.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.domain.IRODSTagValue;
+import org.irods.jargon.usertagging.tags.FreeTaggingService;
+import org.irods.jargon.usertagging.tags.IRODSTaggingService;
+import org.irods.jargon.usertagging.tags.TaggingServiceFactory;
+import org.irods.jargon.usertagging.tags.TaggingServiceFactoryImpl;
+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/QueueManagerDialog.form b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.form
index 58eeb13..dd75723 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.form
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.form
@@ -1,4 +1,4 @@
-<?xml version="1.1" encoding="UTF-8" ?>
+<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.6" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
<NonVisualComponents>
@@ -79,9 +79,6 @@
<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>
<SubComponents>
<Menu class="javax.swing.JMenu" name="jMenu1">
@@ -171,11 +168,6 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="pnlCenter">
- <Properties>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- </Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="Center"/>
@@ -191,18 +183,12 @@
<Properties>
<Property name="dividerLocation" type="int" value="300"/>
<Property name="orientation" type="int" value="0"/>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
</Properties>
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JSplitPaneSupportLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="pnlTop">
<Properties>
- <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="[0, 0]"/>
</Property>
@@ -216,14 +202,6 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="pnlToolbar">
- <Properties>
- <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>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="North"/>
@@ -252,12 +230,6 @@
<Properties>
<Property name="floatable" type="boolean" value="false"/>
<Property name="rollover" type="boolean" value="true"/>
- <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>
<Property name="requestFocusEnabled" type="boolean" value="false"/>
</Properties>
<Constraints>
@@ -276,15 +248,6 @@
<Property name="toolTipText" type="java.lang.String" value="Purge all complete and enqueued transfers"/>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" 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="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
@@ -297,15 +260,6 @@
<Property name="toolTipText" type="java.lang.String" value="Purge all completed, successful transfers"/>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" 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="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
@@ -320,15 +274,6 @@
<Property name="toolTipText" type="java.lang.String" value="Delete the selected transfer"/>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" 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="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
@@ -341,15 +286,6 @@
<Property name="toolTipText" type="java.lang.String" value="Cancel the selected transfer"/>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" 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="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
@@ -362,15 +298,6 @@
<Property name="toolTipText" type="java.lang.String" value="Restart the selected transfer from the current checkpoint"/>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" 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="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
@@ -383,15 +310,6 @@
<Property name="toolTipText" type="java.lang.String" value="Resubmit the selected transfer with no restart"/>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" 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="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
@@ -405,15 +323,6 @@
<Property name="text" type="java.lang.String" value="Refresh View"/>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" 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="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
@@ -425,15 +334,6 @@
<Property name="text" type="java.lang.String" value="Auto Refresh View"/>
<Property name="focusable" type="boolean" value="false"/>
<Property name="horizontalTextPosition" 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="null"/>
- </Property>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="verticalTextPosition" type="int" value="3"/>
</Properties>
<Events>
@@ -449,9 +349,6 @@
<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>
<Property name="requestFocusEnabled" type="boolean" value="false"/>
</Properties>
<AuxValues>
@@ -496,9 +393,6 @@
</Container>
<Container class="javax.swing.JTabbedPane" name="tabDetails">
<Properties>
- <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="requestFocusEnabled" type="boolean" value="false"/>
</Properties>
<Constraints>
@@ -533,9 +427,6 @@
<BevelBorder/>
</Border>
</Property>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
<Property name="requestFocusEnabled" type="boolean" value="false"/>
</Properties>
<Constraints>
@@ -547,14 +438,6 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="pnlTransferOverview">
- <Properties>
- <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>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="Center"/>
@@ -564,14 +447,6 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="pnlTransferStatus">
- <Properties>
- <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>
<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="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"/>
@@ -581,14 +456,6 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="pnlTransferType">
- <Properties>
- <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>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
<SubComponents>
@@ -617,14 +484,6 @@
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnlTransferFileCounts">
- <Properties>
- <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>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
<SubComponents>
@@ -651,9 +510,6 @@
<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="null"/>
- </Property>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
@@ -683,11 +539,6 @@
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="jPanel1">
- <Properties>
- <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
- <Dimension value="null"/>
- </Property>
- </Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="South"/>
@@ -731,12 +582,6 @@
<Container class="javax.swing.JPanel" name="pnlTransferInfoBasicStats">
<Properties>
<Property name="focusable" type="boolean" value="false"/>
- <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>
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
@@ -1108,12 +953,6 @@
</Container>
<Container class="javax.swing.JPanel" name="pnlTransferDetailsTable">
<Properties>
- <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>
<Property name="requestFocusEnabled" type="boolean" value="false"/>
</Properties>
<Constraints>
@@ -1127,14 +966,6 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
<SubComponents>
<Container class="javax.swing.JPanel" name="pnlViewRadio">
- <Properties>
- <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>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
<BorderConstraints direction="North"/>
@@ -1187,9 +1018,6 @@
<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>
<Property name="requestFocusEnabled" type="boolean" value="false"/>
</Properties>
<Constraints>
diff --git a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.java b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.java
index 2c69f7d..fc72904 100644
--- a/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.java
+++ b/idrop-swing/src/main/java/org/irods/jargon/idrop/desktop/systraygui/QueueManagerDialog.java
@@ -1385,7 +1385,6 @@ public class QueueManagerDialog extends javax.swing.JDialog implements ListSelec
lblTransferType1.setText(localIRODSTransfer.getTransferType().toString());
-
lblCountSoFar.setText(String.valueOf(localIRODSTransfer.getTotalFilesTransferredSoFar()));
lblCountOutOf.setText(String.valueOf(localIRODSTransfer.getTotalFilesCount()));
lblTransferFilesCounts.setText("Files: " + localIRODSTransfer.getTotalFilesTransferredSoFar() + " / " + localIRODSTransfer.getTotalFilesCount());
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..80dbbc7 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,70 @@
<?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="0"/>
<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"/>
+ <EventHandler event="windowClosing" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowClosing"/>
</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 +73,542 @@
<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="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">