You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2006/12/18 18:57:49 UTC

svn commit: r488371 [1/14] - in /directory/sandbox/pamarcelot/ldapstudio: ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/ ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/perspective/ ldapstudio-browser-ui...

Author: pamarcelot
Date: Mon Dec 18 09:57:38 2006
New Revision: 488371

URL: http://svn.apache.org/viewvc?view=rev&rev=488371
Log:
Updating LDAP Browser Plugin. Updating UI classes and icons (last files).

Added:
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/FilterAndSortJob.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/RunnableContextJobAdapter.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/TimeTriggeredProgressMonitorDialog.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/perspective/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/perspective/BrowserPerspective.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/search/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/search/SearchPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AbstractDialogCellEditor.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AddressValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/DnValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/HexValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/ImageValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/InPlaceGeneralizedTimeValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/InPlaceTextValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/MultivaluedValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/ObjectClassValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/PasswordValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/TextValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/ValueProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/ValueProviderManager.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserView.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserViewActionGroup.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserViewLabelDecorator.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/BrowserViewUniversalListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/DragListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/DropListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/OpenBrowserPreferencePageAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/ShowBookmarksAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/ShowDITAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/ShowDirectoryMetadataEntriesAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/browser/ShowSearchesAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/connection/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/connection/ConnectionView.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/connection/ConnectionViewActionGroup.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/connection/ConnectionViewUniversalListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/connection/DragConnectionListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/connection/DropConnectionListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/modificationlogs/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/modificationlogs/ModificationLogsView.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/modificationlogs/ModificationLogsViewActionGroup.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/modificationlogs/ModificationLogsViewInput.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/modificationlogs/ModificationLogsViewUniversalListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/modificationlogs/NewerAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/modificationlogs/OlderAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/views/modificationlogs/RefreshAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/BaseWidgetUtils.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/BinaryEncodingInput.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/BrowserWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/DialogContentAssistant.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/DnBuilderWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/FileBrowserWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/FileEncodingInput.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/HistoryUtils.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/LineSeparatorInput.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/ModWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/ObjectClassWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/OptionsInput.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/ViewFormWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/WidgetModifyEvent.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/WidgetModifyListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserActionGroup.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserCategory.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserConfiguration.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserContentProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserEntryPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserLabelProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserPreferences.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserSearchResultPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserSorter.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserSorterDialog.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserUniversalListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/BrowserWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/browser/OpenSortDialogAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/ConnectionActionGroup.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/ConnectionConfiguration.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/ConnectionContentProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/ConnectionLabelProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/ConnectionPageModifyListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/ConnectionPageWrapper.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/ConnectionUniversalListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/connection/ConnectionWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/AbstractEntryEditorListenerAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/AbstractOpenEditorAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EditAttributeDescriptionAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetActionGroup.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetCellModifier.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetConfiguration.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetContentProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetFilter.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetLabelProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetPreferences.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetQuickFilterWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetSorter.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetSorterDialog.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetTableMetadata.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/EntryEditorWidgetUniversalListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/OpenBestEditorAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/OpenDefaultEditorAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/OpenEditorAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/entryeditor/OpenSortDialogAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/ldifeditor/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/ldifeditor/LdifEditorWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/AliasesDereferencingWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/ConnectionWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/EntryWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/FilterWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/LimitWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/ReferralsHandlingWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/ReturningAttributesContentAssistProcessor.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/ReturningAttributesWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/ScopeWidget.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/widgets/search/SearchPageWrapper.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/AttributeOptionsWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/AttributeTypeWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/AttributeWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/BatchOperationApplyOnWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/BatchOperationFinishWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/BatchOperationLdifWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/BatchOperationModifyWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/BatchOperationTypeWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/BatchOperationWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportBaseFromWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportBaseToPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportBaseWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportCsvFromWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportCsvToWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportCsvWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportExcelFromWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportExcelToWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportExcelWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportLdifFromWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportLdifToWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ExportLdifWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ImportLdifMainWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/ImportLdifWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewBookmarkMainWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewBookmarkWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewConnectionAuthWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewConnectionMainWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewConnectionOptionsWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewConnectionWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewEntryAttributesWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewEntryAttributesWizardPageActionGroup.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewEntryDnWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewEntryObjectclassWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewEntryTypeWizardPage.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewEntryWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewLdifFileWizard.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/wizards/NewSearchWizard.java
Modified:
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/model/Connections.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/model/ConnectionsEvent.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/model/ConnectionsListener.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/model/GrammarAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/model/GrammarTransition.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/model/IAction.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/model/IGrammar.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/model/Tag.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/ImageKeys.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/AttributesView.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/AttributesViewContentProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/AttributesViewLabelProvider.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/wrappers/AttributeValueWrapper.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/wrappers/AttributeWrapper.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/wrappers/ConnectionWrapper.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/wrappers/DisplayableTreeViewerElement.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/wrappers/EntryWrapper.java
    directory/sandbox/pamarcelot/ldapstudio/ldapstudio-ldapbrowser/src/main/java/org/apache/directory/ldapstudio/browser/view/views/wrappers/TreeViewerRootNode.java

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/FilterAndSortJob.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/FilterAndSortJob.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/FilterAndSortJob.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/FilterAndSortJob.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,87 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.jobs;
+
+
+import org.apache.directory.ldapstudio.browser.core.jobs.AbstractEclipseJob;
+import org.apache.directory.ldapstudio.browser.core.jobs.ExtendedProgressMonitor;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.browser.ui.editors.searchresult.SearchResultEditorConfiguration;
+import org.apache.directory.ldapstudio.browser.ui.editors.searchresult.SearchResultEditorWidget;
+
+
+public class FilterAndSortJob extends AbstractEclipseJob
+{
+
+    private SearchResultEditorConfiguration configuration;
+
+    private SearchResultEditorWidget mainWidget;
+
+    private Object[] elements;
+
+    private Object[] filteredAndSortedElements;
+
+
+    public FilterAndSortJob( SearchResultEditorConfiguration configuration, SearchResultEditorWidget mainWidget,
+        Object[] elements )
+    {
+        this.configuration = configuration;
+        this.mainWidget = mainWidget;
+        this.elements = elements;
+    }
+
+
+    protected Object[] getLockedObjects()
+    {
+        return new Object[0];
+    }
+
+
+    protected void executeAsyncJob( ExtendedProgressMonitor monitor ) throws Exception
+    {
+        monitor.beginTask( "Filter and Sort", 3 );
+        monitor.worked( 1 );
+
+        monitor.setTaskName( "Filter and Sort" );
+
+        monitor.reportProgress( "Filtering..." );
+        this.filteredAndSortedElements = this.configuration.getFilter().filter( this.mainWidget.getViewer(), "",
+            elements );
+        monitor.worked( 1 );
+
+        monitor.reportProgress( "Sorting..." );
+        this.configuration.getSorter().sort( this.mainWidget.getViewer(), this.filteredAndSortedElements );
+        monitor.worked( 1 );
+    }
+
+
+    protected IConnection[] getConnections()
+    {
+        return new IConnection[0];
+    }
+
+
+    public Object[] getFilteredAndSortedElements()
+    {
+        return filteredAndSortedElements;
+    }
+
+}

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/RunnableContextJobAdapter.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/RunnableContextJobAdapter.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/RunnableContextJobAdapter.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/RunnableContextJobAdapter.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,84 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.jobs;
+
+
+import org.apache.directory.ldapstudio.browser.core.jobs.AbstractEclipseJob;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.operation.IRunnableContext;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.widgets.Display;
+
+
+public class RunnableContextJobAdapter
+{
+
+    public static void execute( final AbstractEclipseJob job )
+    {
+        execute( job, null );
+    }
+
+
+    public static void execute( final AbstractEclipseJob job, IRunnableContext runnableContext )
+    {
+        execute( job, runnableContext, true );
+    }
+
+
+    public static void execute( final AbstractEclipseJob job, IRunnableContext runnableContext, boolean handleError )
+    {
+
+        if ( runnableContext == null )
+            runnableContext = new TimeTriggeredProgressMonitorDialog( Display.getDefault().getActiveShell(), 1000 );
+
+        IRunnableWithProgress runnable = new IRunnableWithProgress()
+        {
+            public void run( IProgressMonitor ipm ) throws InterruptedException
+            {
+                job.setExternalProgressMonitor( ipm );
+                job.execute();
+                job.join();
+            }
+        };
+
+        try
+        {
+            runnableContext.run( true, true, runnable );
+        }
+        catch ( Exception ex )
+        {
+            BrowserUIPlugin.getDefault().getExceptionHandler().handleException(
+                new Status( IStatus.ERROR, BrowserUIPlugin.PLUGIN_ID, IStatus.ERROR, ex.getMessage(), ex ) );
+        }
+
+        if ( handleError && !job.getExternalResult().isOK() )
+        {
+            IStatus status = job.getExternalResult();
+            BrowserUIPlugin.getDefault().getExceptionHandler().handleException( status );
+        }
+
+    }
+
+}

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/TimeTriggeredProgressMonitorDialog.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/TimeTriggeredProgressMonitorDialog.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/TimeTriggeredProgressMonitorDialog.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/jobs/TimeTriggeredProgressMonitorDialog.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,269 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.jobs;
+
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+
+
+public class TimeTriggeredProgressMonitorDialog extends ProgressMonitorDialog
+{
+
+    /**
+     * The time considered to be the long operation time.
+     */
+    private int longOperationTime;
+
+    /**
+     * The time at which the dialog should be opened.
+     */
+    private long triggerTime = -1;
+
+    /**
+     * Whether or not we've already opened a dialog.
+     */
+    private boolean dialogOpened = false;
+
+    /**
+     * Wrappered monitor so we can check ticks and open the dialog when
+     * appropriate
+     */
+    private IProgressMonitor wrapperedMonitor;
+
+
+    /**
+     * Create a new instance of the receiver.
+     * 
+     * @param parent
+     *                the parent of the dialog
+     * @param longOperationTime
+     *                the time (in milliseconds) considered to be a long
+     *                enough execution time to warrant opening a dialog.
+     */
+    public TimeTriggeredProgressMonitorDialog( Shell parent, int longOperationTime )
+    {
+        super( parent );
+        setOpenOnRun( false );
+        this.longOperationTime = longOperationTime;
+    }
+
+
+    /**
+     * Create a monitor for the receiver that wrappers the superclasses
+     * monitor.
+     * 
+     */
+    public void createWrapperedMonitor()
+    {
+        wrapperedMonitor = new IProgressMonitor()
+        {
+
+            IProgressMonitor superMonitor = TimeTriggeredProgressMonitorDialog.super.getProgressMonitor();
+
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see org.eclipse.core.runtime.IProgressMonitor#beginTask(java.lang.String,
+             *      int)
+             */
+            public void beginTask( String name, int totalWork )
+            {
+                superMonitor.beginTask( name, totalWork );
+                checkTicking();
+            }
+
+
+            /**
+             * Check if we have ticked in the last 800ms.
+             */
+            private void checkTicking()
+            {
+                if ( triggerTime < 0 )
+                    triggerTime = System.currentTimeMillis() + longOperationTime;
+                if ( !dialogOpened && System.currentTimeMillis() > triggerTime )
+                {
+
+                    // workaround: check that not another modal windows
+                    // (e.g. password dialog)
+                    // was opend while showing the busy cursor.
+                    if ( PlatformUI.getWorkbench().getDisplay().getActiveShell() == getParentShell() )
+                    {
+                        open();
+                        dialogOpened = true;
+                    }
+                }
+            }
+
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see org.eclipse.core.runtime.IProgressMonitor#done()
+             */
+            public void done()
+            {
+                superMonitor.done();
+                checkTicking();
+            }
+
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see org.eclipse.core.runtime.IProgressMonitor#internalWorked(double)
+             */
+            public void internalWorked( double work )
+            {
+                superMonitor.internalWorked( work );
+                checkTicking();
+            }
+
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see org.eclipse.core.runtime.IProgressMonitor#isCanceled()
+             */
+            public boolean isCanceled()
+            {
+                return superMonitor.isCanceled();
+            }
+
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see org.eclipse.core.runtime.IProgressMonitor#setCanceled(boolean)
+             */
+            public void setCanceled( boolean value )
+            {
+                superMonitor.setCanceled( value );
+
+            }
+
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see org.eclipse.core.runtime.IProgressMonitor#setTaskName(java.lang.String)
+             */
+            public void setTaskName( String name )
+            {
+                superMonitor.setTaskName( name );
+                checkTicking();
+
+            }
+
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see org.eclipse.core.runtime.IProgressMonitor#subTask(java.lang.String)
+             */
+            public void subTask( String name )
+            {
+                superMonitor.subTask( name );
+                checkTicking();
+            }
+
+
+            /*
+             * (non-Javadoc)
+             * 
+             * @see org.eclipse.core.runtime.IProgressMonitor#worked(int)
+             */
+            public void worked( int work )
+            {
+                superMonitor.worked( work );
+                checkTicking();
+
+            }
+        };
+    }
+
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.jface.dialogs.ProgressMonitorDialog#getProgressMonitor()
+     */
+    public IProgressMonitor getProgressMonitor()
+    {
+        if ( wrapperedMonitor == null )
+            createWrapperedMonitor();
+        return wrapperedMonitor;
+    }
+
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.eclipse.jface.operations.IRunnableContext#run(boolean,
+     *      boolean, IRunnableWithProgress)
+     */
+    public void run( final boolean fork, final boolean cancelable, final IRunnableWithProgress runnable )
+        throws InvocationTargetException, InterruptedException
+    {
+        final InvocationTargetException[] invokes = new InvocationTargetException[1];
+        final InterruptedException[] interrupt = new InterruptedException[1];
+        Runnable dialogWaitRunnable = new Runnable()
+        {
+            public void run()
+            {
+                try
+                {
+                    TimeTriggeredProgressMonitorDialog.super.run( fork, cancelable, runnable );
+                }
+                catch ( InvocationTargetException e )
+                {
+                    invokes[0] = e;
+                }
+                catch ( InterruptedException e )
+                {
+                    interrupt[0] = e;
+                }
+            }
+        };
+        final Display display = PlatformUI.getWorkbench().getDisplay();
+        if ( display == null )
+            return;
+        // show a busy cursor until the dialog opens
+        BusyIndicator.showWhile( display, dialogWaitRunnable );
+        if ( invokes[0] != null )
+        {
+            throw invokes[0];
+        }
+        if ( interrupt[0] != null )
+        {
+            throw interrupt[0];
+        }
+    }
+
+}
\ No newline at end of file

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/perspective/BrowserPerspective.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/perspective/BrowserPerspective.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/perspective/BrowserPerspective.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/perspective/BrowserPerspective.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,112 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.perspective;
+
+
+import org.apache.directory.ldapstudio.browser.ui.views.browser.BrowserView;
+import org.apache.directory.ldapstudio.browser.ui.views.connection.ConnectionView;
+import org.apache.directory.ldapstudio.browser.ui.views.modificationlogs.ModificationLogsView;
+import org.apache.directory.ldapstudio.browser.ui.wizards.BatchOperationWizard;
+import org.apache.directory.ldapstudio.browser.ui.wizards.NewBookmarkWizard;
+import org.apache.directory.ldapstudio.browser.ui.wizards.NewConnectionWizard;
+import org.apache.directory.ldapstudio.browser.ui.wizards.NewEntryWizard;
+import org.apache.directory.ldapstudio.browser.ui.wizards.NewLdifFileWizard;
+import org.apache.directory.ldapstudio.browser.ui.wizards.NewSearchWizard;
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+
+
+public class BrowserPerspective implements IPerspectiveFactory
+{
+
+    public static String getId()
+    {
+        return BrowserPerspective.class.getName();
+    }
+
+
+    public void createInitialLayout( IPageLayout layout )
+    {
+        defineActions( layout );
+        defineLayout( layout );
+    }
+
+
+    private void defineActions( IPageLayout layout )
+    {
+
+        // Add "new wizards".
+        layout.addNewWizardShortcut( NewConnectionWizard.getId() );
+        layout.addNewWizardShortcut( NewEntryWizard.getId() );
+        layout.addNewWizardShortcut( NewSearchWizard.getId() );
+        layout.addNewWizardShortcut( NewBookmarkWizard.getId() );
+        layout.addNewWizardShortcut( BatchOperationWizard.getId() );
+        layout.addNewWizardShortcut( NewLdifFileWizard.getId() );
+
+        // Add "show views".
+        layout.addShowViewShortcut( ConnectionView.getId() );
+        layout.addShowViewShortcut( BrowserView.getId() );
+        layout.addShowViewShortcut( ModificationLogsView.getId() );
+        layout.addShowViewShortcut( IPageLayout.ID_RES_NAV );
+        layout.addShowViewShortcut( IPageLayout.ID_OUTLINE );
+        layout.addShowViewShortcut( "org.eclipse.ui.views.ProgressView" );
+        // layout.addShowViewShortcut(IPageLayout.ID_PROGRESS_VIEW);
+        // layout.addShowViewShortcut("org.eclipse.pde.runtime.LogView");
+    }
+
+
+    private void defineLayout( IPageLayout layout )
+    {
+
+        // Editor area
+        String editorArea = layout.getEditorArea();
+
+        // Browser folder
+        IFolderLayout browserFolder = layout.createFolder( "browserFolder", IPageLayout.LEFT, ( float ) 0.25,
+            editorArea );
+        browserFolder.addView( BrowserView.getId() );
+        browserFolder.addView( IPageLayout.ID_RES_NAV );
+
+        // Connection folder
+        IFolderLayout connectionFolder = layout.createFolder( "connectionFolder", IPageLayout.BOTTOM, ( float ) 0.75,
+            "browserFolder" );
+        connectionFolder.addView( ConnectionView.getId() );
+
+        // Outline folder
+        IFolderLayout outlineFolder = layout.createFolder( "outlineFolder", IPageLayout.RIGHT, ( float ) 0.75,
+            editorArea );
+        outlineFolder.addView( IPageLayout.ID_OUTLINE );
+
+        // Progress folder
+        IFolderLayout progessFolder = layout.createFolder( "progressFolder", IPageLayout.BOTTOM, ( float ) 0.75,
+            "outlineFolder" );
+        progessFolder.addView( "org.eclipse.ui.views.ProgressView" );
+        // progessFolder.addView(IPageLayout.ID_PROGRESS_VIEW);
+
+        // Log folder
+        IFolderLayout logFolder = layout.createFolder( "logFolder", IPageLayout.BOTTOM, ( float ) 0.75, editorArea );
+        logFolder.addView( ModificationLogsView.getId() );
+        // logFolder.addView("org.eclipse.pde.runtime.LogView");
+        logFolder.addPlaceholder( "*" );
+    }
+
+}

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/search/SearchPage.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/search/SearchPage.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/search/SearchPage.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/search/SearchPage.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,143 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.search;
+
+
+import org.apache.directory.ldapstudio.browser.core.model.ISearch;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
+import org.apache.directory.ldapstudio.browser.ui.actions.SelectionUtils;
+import org.apache.directory.ldapstudio.browser.ui.widgets.BaseWidgetUtils;
+import org.apache.directory.ldapstudio.browser.ui.widgets.WidgetModifyEvent;
+import org.apache.directory.ldapstudio.browser.ui.widgets.WidgetModifyListener;
+import org.apache.directory.ldapstudio.browser.ui.widgets.search.SearchPageWrapper;
+
+import org.eclipse.jface.dialogs.DialogPage;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.search.ui.ISearchPage;
+import org.eclipse.search.ui.ISearchPageContainer;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+
+
+public class SearchPage extends DialogPage implements ISearchPage, WidgetModifyListener
+{
+
+    private ISearchPageContainer container;
+
+    private ISearch search;
+
+    private SearchPageWrapper spw;
+
+
+    public static String getId()
+    {
+        return SearchPage.class.getName();
+    }
+
+
+    public void dispose()
+    {
+        this.spw.removeWidgetModifyListener( this );
+        super.dispose();
+    }
+
+
+    public SearchPage()
+    {
+        super();
+    }
+
+
+    public SearchPage( String title )
+    {
+        super( title );
+    }
+
+
+    public SearchPage( String title, ImageDescriptor image )
+    {
+        super( title, image );
+    }
+
+
+    public boolean performAction()
+    {
+        this.spw.saveToSearch( this.search );
+        if ( this.search.getConnection() != null )
+        {
+            this.search.getConnection().getSearchManager().addSearch( this.search );
+            return this.spw.performSearch( this.search );
+        }
+
+        return false;
+    }
+
+
+    public void setContainer( ISearchPageContainer container )
+    {
+        this.container = container;
+    }
+
+
+    public void createControl( Composite parent )
+    {
+
+        // declare search
+        this.search = SelectionUtils.getExampleSearch( this.container.getSelection() );
+
+        // create search page content
+        GridLayout gl = new GridLayout();
+        parent.setLayout( gl );
+        GridData gd = new GridData( GridData.FILL_BOTH );
+        gd.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH );
+        // gd.heightHint =
+        // convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
+        parent.setLayoutData( gd );
+
+        PlatformUI.getWorkbench().getHelpSystem().setHelp( parent,
+            BrowserUIPlugin.PLUGIN_ID + "." + "tools_search_dialog" );
+
+        Composite composite = BaseWidgetUtils.createColumnContainer( parent, 3, 1 );
+        this.spw = new SearchPageWrapper( SearchPageWrapper.NONE );
+        this.spw.createContents( composite );
+        this.spw.loadFromSearch( this.search );
+        this.spw.addWidgetModifyListener( this );
+
+        super.setControl( parent );
+    }
+
+
+    public void setVisible( boolean visible )
+    {
+        this.container.setPerformActionEnabled( this.spw.isValid() );
+        super.setVisible( visible );
+    }
+
+
+    public void widgetModified( WidgetModifyEvent event )
+    {
+        this.container.setPerformActionEnabled( this.spw.isValid() );
+    }
+
+}

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AbstractDialogCellEditor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AbstractDialogCellEditor.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AbstractDialogCellEditor.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AbstractDialogCellEditor.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,95 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.valueproviders;
+
+
+import org.apache.directory.ldapstudio.browser.core.model.IValue;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+
+public abstract class AbstractDialogCellEditor extends CellEditor
+{
+
+    protected Object value;
+
+    protected Composite parent;
+
+
+    public AbstractDialogCellEditor( Composite parent )
+    {
+        super( parent );
+        this.parent = parent;
+    }
+
+
+    protected Control createControl( Composite parent )
+    {
+        return null;
+    }
+
+
+    protected Object doGetValue()
+    {
+        return this.value;
+    }
+
+
+    protected void doSetFocus()
+    {
+    }
+
+
+    protected void doSetValue( Object value )
+    {
+        if ( value != null && value instanceof IValue.EmptyValue )
+        {
+            IValue.EmptyValue emptyValue = ( IValue.EmptyValue ) value;
+            if ( emptyValue.isBinary() )
+                value = emptyValue.getBinaryValue();
+            else
+                value = emptyValue.getStringValue();
+        }
+        this.value = value;
+    }
+
+
+    public void activate()
+    {
+        Object newValue = this.openDialogBox( parent );
+        doSetValue( newValue );
+        if ( this.value == null )
+        {
+            fireCancelEditor();
+        }
+        else
+        {
+            fireApplyEditorValue();
+            deactivate();
+        }
+    }
+
+
+    protected abstract Object openDialogBox( Control control );
+
+}

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AddressValueProvider.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AddressValueProvider.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AddressValueProvider.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/AddressValueProvider.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,170 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.valueproviders;
+
+
+import org.apache.directory.ldapstudio.browser.core.events.ModelModifier;
+import org.apache.directory.ldapstudio.browser.core.model.AttributeHierachie;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.browser.core.model.IEntry;
+import org.apache.directory.ldapstudio.browser.core.model.IValue;
+import org.apache.directory.ldapstudio.browser.core.model.ModelModificationException;
+import org.apache.directory.ldapstudio.browser.core.model.schema.Schema;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIConstants;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.AddressDialog;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.TextDialog;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+
+public class AddressValueProvider extends AbstractDialogCellEditor implements ValueProvider, ModelModifier
+{
+
+    private TextValueProvider delegate;
+
+
+    public AddressValueProvider( Composite parent )
+    {
+        super( parent );
+        this.delegate = new TextValueProvider( parent );
+    }
+
+
+    public CellEditor getCellEditor()
+    {
+        return this;
+    }
+
+
+    public String getCellEditorName()
+    {
+        return "Address Editor";
+    }
+
+
+    public ImageDescriptor getCellEditorImageDescriptor()
+    {
+        return BrowserUIPlugin.getDefault().getImageDescriptor( BrowserUIConstants.IMG_ADDRESSEDITOR );
+    }
+
+
+    public Object openDialogBox( Control cellEditorWindow )
+    {
+        Object value = getValue();
+        if ( value != null && value instanceof String )
+        {
+            AddressDialog dialog = new AddressDialog( cellEditorWindow.getShell(), ( String ) value );
+            if ( dialog.open() == TextDialog.OK && !"".equals( dialog.getText() ) )
+            {
+                return dialog.getText();
+            }
+        }
+        return null;
+    }
+
+
+    public String getDisplayValue( AttributeHierachie ah )
+    {
+        if ( ah == null )
+        {
+            return "NULL";
+        }
+        else if ( ah.size() == 1 && ah.getAttribute().getValueSize() == 1 )
+        {
+            return getDisplayValue( ah.getAttribute().getValues()[0] );
+        }
+        else
+        {
+            return "not displayable";
+        }
+    }
+
+
+    public String getDisplayValue( IValue value )
+    {
+        // return delegate.getDisplayValue(value);
+        String displayValue = delegate.getDisplayValue( value );
+
+        if ( !BrowserUIPlugin.getDefault().getPreferenceStore().getBoolean(
+            BrowserUIConstants.PREFERENCE_SHOW_RAW_VALUES ) )
+        {
+            displayValue = displayValue.replaceAll( "\\$", ", " );
+            // displayValue = displayValue.replaceAll("\\$",
+            // BrowserCoreConstants.NEWLINE);
+        }
+
+        return displayValue;
+    }
+
+
+    public void create( IEntry entry, String attributeDescription, Object newRawValue )
+        throws ModelModificationException
+    {
+        delegate.create( entry, attributeDescription, newRawValue );
+    }
+
+
+    public void delete( AttributeHierachie ah ) throws ModelModificationException
+    {
+        delegate.delete( ah );
+    }
+
+
+    public void delete( IValue oldValue ) throws ModelModificationException
+    {
+        delegate.delete( oldValue );
+    }
+
+
+    public Object getEmptyRawValue( IEntry entry, String attributeDescription )
+    {
+        return delegate.getEmptyRawValue( entry, attributeDescription );
+    }
+
+
+    public Object getRawValue( AttributeHierachie ah )
+    {
+        return delegate.getRawValue( ah );
+    }
+
+
+    public Object getRawValue( IValue value )
+    {
+        return delegate.getRawValue( value );
+    }
+
+
+    public Object getRawValue( IConnection connection, Schema schema, Object value )
+    {
+        return delegate.getRawValue( connection, schema, value );
+    }
+
+
+    public void modify( IValue oldValue, Object newRawValue ) throws ModelModificationException
+    {
+        delegate.modify( oldValue, newRawValue );
+    }
+
+}

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/DnValueProvider.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/DnValueProvider.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/DnValueProvider.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/DnValueProvider.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,237 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.valueproviders;
+
+
+import org.apache.directory.ldapstudio.browser.core.events.ModelModifier;
+import org.apache.directory.ldapstudio.browser.core.model.AttributeHierachie;
+import org.apache.directory.ldapstudio.browser.core.model.DN;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.browser.core.model.IEntry;
+import org.apache.directory.ldapstudio.browser.core.model.IValue;
+import org.apache.directory.ldapstudio.browser.core.model.ModelModificationException;
+import org.apache.directory.ldapstudio.browser.core.model.NameException;
+import org.apache.directory.ldapstudio.browser.core.model.schema.Schema;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIConstants;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.DnDialog;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.TextDialog;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+
+public class DnValueProvider extends AbstractDialogCellEditor implements ValueProvider, ModelModifier
+{
+
+    private TextValueProvider delegate;
+
+
+    public DnValueProvider( Composite parent )
+    {
+        super( parent );
+        this.delegate = new TextValueProvider( parent );
+    }
+
+
+    public CellEditor getCellEditor()
+    {
+        return this;
+    }
+
+
+    public String getCellEditorName()
+    {
+        return "DN Editor";
+    }
+
+
+    public ImageDescriptor getCellEditorImageDescriptor()
+    {
+        return BrowserUIPlugin.getDefault().getImageDescriptor( BrowserUIConstants.IMG_DNEDITOR );
+    }
+
+
+    protected Object openDialogBox( Control cellEditorWindow )
+    {
+        Object value = getValue();
+        if ( value != null && value instanceof DnValueProviderRawValue )
+        {
+
+            DnValueProviderRawValue v = ( DnValueProviderRawValue ) value;
+
+            DnDialog dialog = new DnDialog( cellEditorWindow.getShell(), v.connection, v.dn );
+            if ( dialog.open() == TextDialog.OK && dialog.getDn() != null )
+            {
+                return dialog.getDn();
+            }
+        }
+        return null;
+    }
+
+
+    public String getDisplayValue( AttributeHierachie ah )
+    {
+        return delegate.getDisplayValue( ah );
+    }
+
+
+    public String getDisplayValue( IValue value )
+    {
+        return delegate.getDisplayValue( value );
+    }
+
+
+    public void create( IEntry entry, String attributeDescription, Object newRawValue )
+        throws ModelModificationException
+    {
+        if ( newRawValue != null && newRawValue instanceof DN )
+        {
+            newRawValue = ( ( DN ) newRawValue ).toString();
+            delegate.create( entry, attributeDescription, newRawValue );
+        }
+    }
+
+
+    public void delete( AttributeHierachie ah ) throws ModelModificationException
+    {
+        delegate.delete( ah );
+    }
+
+
+    public void delete( IValue oldValue ) throws ModelModificationException
+    {
+        delegate.delete( oldValue );
+    }
+
+
+    public Object getEmptyRawValue( IEntry entry, String attributeDescription )
+    {
+        return delegate.getEmptyRawValue( entry, attributeDescription );
+    }
+
+
+    public Object getRawValue( AttributeHierachie ah )
+    {
+
+        if ( ah == null )
+        {
+            return null;
+        }
+        else if ( ah.size() == 1 && ah.getAttribute().getValueSize() == 0 )
+        {
+            IConnection connection = ah.getAttribute().getEntry().getConnection();
+            DN dn = null;
+            return new DnValueProviderRawValue( connection, dn );
+        }
+        else if ( ah.size() == 1 && ah.getAttribute().getValueSize() == 1 )
+        {
+            IConnection connection = ah.getAttribute().getEntry().getConnection();
+            DN dn = null;
+            try
+            {
+                dn = new DN( getDisplayValue( ah ) );
+            }
+            catch ( NameException e )
+            {
+            }
+            return new DnValueProviderRawValue( connection, dn );
+        }
+        else
+        {
+            return null;
+        }
+
+        // IConnection connection = attribute.getEntry().getConnection();
+        //
+        // DN dn = null;
+        // if (attribute.getValueSize() == 0) {
+        // dn = null;
+        // }
+        // else {
+        // try {
+        // dn = new DN(getDisplayValue(attributes));
+        // }
+        // catch (NameException e) {
+        // }
+        // }
+        //
+        // return new DnValueProviderRawValue(connection, dn);
+    }
+
+
+    public Object getRawValue( IValue value )
+    {
+
+        IConnection connection = value.getAttribute().getEntry().getConnection();
+
+        DN dn = null;
+        if ( value.isEmpty() )
+        {
+            dn = null;
+        }
+        else
+        {
+            try
+            {
+                dn = new DN( getDisplayValue( value ) );
+            }
+            catch ( NameException e )
+            {
+            }
+        }
+
+        return new DnValueProviderRawValue( connection, dn );
+    }
+
+
+    public Object getRawValue( IConnection connection, Schema schema, Object value )
+    {
+        return null;
+    }
+
+
+    public void modify( IValue oldValue, Object newRawValue ) throws ModelModificationException
+    {
+        if ( newRawValue != null && newRawValue instanceof DN )
+        {
+            newRawValue = ( ( DN ) newRawValue ).toString();
+            delegate.modify( oldValue, newRawValue );
+        }
+    }
+
+    class DnValueProviderRawValue
+    {
+        IConnection connection;
+
+        DN dn;
+
+
+        public DnValueProviderRawValue( IConnection connection, DN dn )
+        {
+            this.connection = connection;
+            this.dn = dn;
+        }
+    }
+
+}

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/HexValueProvider.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/HexValueProvider.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/HexValueProvider.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/HexValueProvider.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,334 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.valueproviders;
+
+
+import org.apache.directory.ldapstudio.browser.core.events.EventRegistry;
+import org.apache.directory.ldapstudio.browser.core.events.ModelModifier;
+import org.apache.directory.ldapstudio.browser.core.internal.model.Attribute;
+import org.apache.directory.ldapstudio.browser.core.jobs.CreateValuesJob;
+import org.apache.directory.ldapstudio.browser.core.jobs.DeleteAttributesValueJob;
+import org.apache.directory.ldapstudio.browser.core.jobs.ModifyValueJob;
+import org.apache.directory.ldapstudio.browser.core.model.AttributeHierachie;
+import org.apache.directory.ldapstudio.browser.core.model.IAttribute;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.browser.core.model.IEntry;
+import org.apache.directory.ldapstudio.browser.core.model.IValue;
+import org.apache.directory.ldapstudio.browser.core.model.ModelModificationException;
+import org.apache.directory.ldapstudio.browser.core.model.schema.Schema;
+import org.apache.directory.ldapstudio.browser.core.utils.LdifUtils;
+import org.apache.directory.ldapstudio.browser.core.utils.Utils;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIConstants;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.HexDialog;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.TextDialog;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+
+public class HexValueProvider extends AbstractDialogCellEditor implements ValueProvider, ModelModifier
+{
+
+    public HexValueProvider( Composite parent )
+    {
+        super( parent );
+    }
+
+
+    public CellEditor getCellEditor()
+    {
+        return this;
+    }
+
+
+    public String getCellEditorName()
+    {
+        return "Hex Editor";
+    }
+
+
+    public ImageDescriptor getCellEditorImageDescriptor()
+    {
+        return BrowserUIPlugin.getDefault().getImageDescriptor( BrowserUIConstants.IMG_HEXEDITOR );
+    }
+
+
+    protected Object openDialogBox( Control cellEditorWindow )
+    {
+        Object value = getValue();
+        if ( value != null && value instanceof byte[] )
+        {
+            byte[] initialData = ( byte[] ) value;
+            HexDialog dialog = new HexDialog( cellEditorWindow.getShell(), initialData );
+            if ( dialog.open() == TextDialog.OK && dialog.getData() != null )
+            {
+                return dialog.getData();
+            }
+        }
+        return null;
+    }
+
+
+    public String getDisplayValue( AttributeHierachie ah )
+    {
+        if ( ah == null )
+        {
+            return "NULL";
+        }
+        else if ( ah.size() == 1 && ah.getAttribute().getValueSize() == 1 )
+        {
+            return getDisplayValue( ah.getAttribute().getValues()[0] );
+        }
+        else
+        {
+            return "not displayable";
+        }
+    }
+
+
+    public String getDisplayValue( IValue value )
+    {
+        if ( BrowserUIPlugin.getDefault().getPreferenceStore().getBoolean(
+            BrowserUIConstants.PREFERENCE_SHOW_RAW_VALUES ) )
+        {
+            return getPlainTextValue( value );
+        }
+        else
+        {
+            if ( value == null )
+            {
+                return "NULL";
+            }
+            else if ( value.isBinary() )
+            {
+                byte[] data = value.getBinaryValue();
+                return "Binary Data (" + data.length + " Bytes)";
+            }
+            else
+            {
+                return "Invalid Data";
+            }
+        }
+    }
+
+
+    String getPlainTextValue( IValue value )
+    {
+        if ( value == null )
+        {
+            return "NULL";
+        }
+        else if ( value.isBinary() )
+        {
+            byte[] data = value.getBinaryValue();
+            StringBuffer sb = new StringBuffer();
+            for ( int i = 0; data != null && i < data.length && i < 128; i++ )
+            {
+                if ( data[i] > 32 && data[i] < 127 )
+                    sb.append( ( char ) data[i] );
+                else
+                    sb.append( '.' );
+            }
+            return sb.toString();
+        }
+        else if ( value.isString() )
+        {
+            return value.getStringValue();
+        }
+        else
+        {
+            return "NULL";
+        }
+    }
+
+
+    public Object getEmptyRawValue( IEntry entry, String attributeDescription )
+    {
+        if ( entry.getConnection().getSchema().getAttributeTypeDescription( attributeDescription )
+            .getSyntaxDescription().isBinary() )
+        {
+            return IValue.EMPTY_BINARY_VALUE;
+        }
+        else
+        {
+            return null;
+        }
+    }
+
+
+    public Object getRawValue( AttributeHierachie ah )
+    {
+        if ( ah == null )
+        {
+            return null;
+        }
+        else if ( ah.size() == 1 && ah.getAttribute().getValueSize() == 0 )
+        {
+            return getEmptyRawValue( ah.getAttribute().getEntry(), ah.getAttribute().getDescription() );
+        }
+        else if ( ah.size() == 1 && ah.getAttribute().getValueSize() == 1 )
+        {
+            return getRawValue( ah.getAttribute().getValues()[0] );
+        }
+        else
+        {
+            return null;
+        }
+    }
+
+
+    public Object getRawValue( IValue value )
+    {
+        if ( value == null )
+        {
+            return null;
+        }
+        else if ( value.isString() )
+        {
+            return value.getBinaryValue();
+        }
+        else if ( value.isBinary() )
+        {
+            return value.getBinaryValue();
+        }
+        else
+        {
+            return null;
+        }
+    }
+
+
+    public Object getRawValue( IConnection connection, Schema schema, Object value )
+    {
+        if ( value == null )
+        {
+            return null;
+        }
+        else if ( value instanceof String )
+        {
+            return LdifUtils.utf8encode( ( String ) value );
+        }
+        else if ( value instanceof byte[] )
+        {
+            return value;
+        }
+        else
+        {
+            return null;
+        }
+    }
+
+
+    public void create( IEntry entry, String attributeDescription, Object newRawValue )
+        throws ModelModificationException
+    {
+        if ( entry != null && attributeDescription != null && newRawValue != null && newRawValue instanceof byte[] )
+        {
+            if ( entry.getAttribute( attributeDescription ) != null )
+            {
+                this.modify( entry.getAttribute( attributeDescription ), newRawValue );
+            }
+            else
+            {
+                EventRegistry.suspendEventFireingInCurrentThread();
+                IAttribute attribute = new Attribute( entry, attributeDescription );
+                entry.addAttribute( attribute, this );
+                EventRegistry.resumeEventFireingInCurrentThread();
+
+                Object newValue;
+                if ( entry.getConnection().getSchema().getAttributeTypeDescription( attributeDescription )
+                    .getSyntaxDescription().isString() )
+                {
+                    newValue = LdifUtils.utf8decode( ( byte[] ) newRawValue );
+                }
+                else
+                {
+                    newValue = ( byte[] ) newRawValue;
+                }
+
+                new CreateValuesJob( attribute, newValue ).execute();
+            }
+        }
+    }
+
+
+    private void modify( IAttribute attribute, Object newRawValue ) throws ModelModificationException
+    {
+        if ( attribute != null && newRawValue != null && newRawValue instanceof byte[] )
+        {
+            if ( attribute.getValueSize() == 0 )
+            {
+                byte[] newValue = ( byte[] ) newRawValue;
+                new CreateValuesJob( attribute, newValue ).execute();
+            }
+            else if ( attribute.getValueSize() == 1 )
+            {
+                this.modify( attribute.getValues()[0], newRawValue );
+            }
+        }
+    }
+
+
+    public void modify( IValue oldValue, Object newRawValue ) throws ModelModificationException
+    {
+        if ( oldValue != null && newRawValue != null && newRawValue instanceof byte[] )
+        {
+            byte[] newValue = ( byte[] ) newRawValue;
+            IAttribute attribute = oldValue.getAttribute();
+            if ( !Utils.equals( oldValue.getBinaryValue(), newValue ) )
+            {
+                if ( oldValue.isEmpty() )
+                {
+                    EventRegistry.suspendEventFireingInCurrentThread();
+                    attribute.deleteEmptyValue( this );
+                    EventRegistry.resumeEventFireingInCurrentThread();
+                    new CreateValuesJob( attribute, newValue ).execute();
+                }
+                else
+                {
+                    new ModifyValueJob( attribute, oldValue, newValue ).execute();
+                }
+            }
+        }
+    }
+
+
+    public void delete( AttributeHierachie ah ) throws ModelModificationException
+    {
+        if ( ah != null )
+        {
+            new DeleteAttributesValueJob( ah ).execute();
+        }
+    }
+
+
+    public void delete( IValue oldValue ) throws ModelModificationException
+    {
+        if ( oldValue != null )
+        {
+            new DeleteAttributesValueJob( oldValue ).execute();
+        }
+    }
+
+}

Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/ImageValueProvider.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/ImageValueProvider.java?view=auto&rev=488371
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/ImageValueProvider.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-browser-ui/src/org/apache/directory/ldapstudio/browser/ui/valueproviders/ImageValueProvider.java Mon Dec 18 09:57:38 2006
@@ -0,0 +1,185 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+
+package org.apache.directory.ldapstudio.browser.ui.valueproviders;
+
+
+import org.apache.directory.ldapstudio.browser.core.events.ModelModifier;
+import org.apache.directory.ldapstudio.browser.core.model.AttributeHierachie;
+import org.apache.directory.ldapstudio.browser.core.model.IConnection;
+import org.apache.directory.ldapstudio.browser.core.model.IEntry;
+import org.apache.directory.ldapstudio.browser.core.model.IValue;
+import org.apache.directory.ldapstudio.browser.core.model.ModelModificationException;
+import org.apache.directory.ldapstudio.browser.core.model.schema.Schema;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIConstants;
+import org.apache.directory.ldapstudio.browser.ui.BrowserUIPlugin;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.ImageDialog;
+import org.apache.directory.ldapstudio.browser.ui.dialogs.TextDialog;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+
+public class ImageValueProvider extends AbstractDialogCellEditor implements ValueProvider, ModelModifier
+{
+
+    private HexValueProvider delegate;
+
+
+    public ImageValueProvider( Composite parent )
+    {
+        super( parent );
+        this.delegate = new HexValueProvider( parent );
+    }
+
+
+    public CellEditor getCellEditor()
+    {
+        return this;
+    }
+
+
+    public String getCellEditorName()
+    {
+        return "Image Editor";
+    }
+
+
+    public ImageDescriptor getCellEditorImageDescriptor()
+    {
+        return BrowserUIPlugin.getDefault().getImageDescriptor( BrowserUIConstants.IMG_IMAGEEDITOR );
+    }
+
+
+    protected Object openDialogBox( Control cellEditorWindow )
+    {
+        Object value = getValue();
+
+        if ( value != null && value instanceof byte[] )
+        {
+            byte[] currentImageData = ( byte[] ) value;
+
+            ImageDialog dialog = new ImageDialog( cellEditorWindow.getShell(), currentImageData, SWT.IMAGE_JPEG );
+            if ( dialog.open() == TextDialog.OK && dialog.getNewImageRawData() != null )
+            {
+                return dialog.getNewImageRawData();
+            }
+        }
+        return null;
+    }
+
+
+    public String getDisplayValue( AttributeHierachie ah )
+    {
+        if ( ah == null )
+        {
+            return "NULL";
+        }
+        else if ( ah.size() == 1 && ah.getAttribute().getValueSize() == 1 )
+        {
+            return getDisplayValue( ah.getAttribute().getValues()[0] );
+        }
+        else
+        {
+            return "not displayable";
+        }
+    }
+
+
+    public String getDisplayValue( IValue value )
+    {
+
+        if ( BrowserUIPlugin.getDefault().getPreferenceStore().getBoolean(
+            BrowserUIConstants.PREFERENCE_SHOW_RAW_VALUES ) )
+        {
+            return delegate.getPlainTextValue( value );
+        }
+        else
+        {
+            if ( value == null )
+            {
+                return "NULL";
+            }
+            if ( value.isBinary() )
+            {
+                byte[] data = value.getBinaryValue();
+                String text = ImageDialog.getImageInfo( data );
+                return text;
+            }
+            else
+            {
+                return "Invalid Image Data";
+            }
+        }
+    }
+
+
+    public void create( IEntry entry, String attributeDescription, Object newRawValue )
+        throws ModelModificationException
+    {
+        delegate.create( entry, attributeDescription, newRawValue );
+    }
+
+
+    public void delete( AttributeHierachie ah ) throws ModelModificationException
+    {
+        delegate.delete( ah );
+    }
+
+
+    public void delete( IValue oldValue ) throws ModelModificationException
+    {
+        delegate.delete( oldValue );
+    }
+
+
+    public Object getEmptyRawValue( IEntry entry, String attributeDescription )
+    {
+        return delegate.getEmptyRawValue( entry, attributeDescription );
+    }
+
+
+    public Object getRawValue( AttributeHierachie ah )
+    {
+        return delegate.getRawValue( ah );
+    }
+
+
+    public Object getRawValue( IValue value )
+    {
+        return delegate.getRawValue( value );
+    }
+
+
+    public Object getRawValue( IConnection connection, Schema schema, Object value )
+    {
+        return delegate.getRawValue( connection, schema, value );
+    }
+
+
+    public void modify( IValue oldValue, Object newRawValue ) throws ModelModificationException
+    {
+        delegate.modify( oldValue, newRawValue );
+    }
+
+}