Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 73002 invoked from network); 21 Aug 2007 11:53:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 Aug 2007 11:53:15 -0000 Received: (qmail 84158 invoked by uid 500); 21 Aug 2007 11:53:13 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 84126 invoked by uid 500); 21 Aug 2007 11:53:12 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 84115 invoked by uid 99); 21 Aug 2007 11:53:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Aug 2007 04:53:12 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Aug 2007 11:53:47 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 0211C1A981A; Tue, 21 Aug 2007 04:52:51 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r568080 - /directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/AttributeTypeSelectionDialog.java Date: Tue, 21 Aug 2007 11:52:51 -0000 To: commits@directory.apache.org From: pamarcelot@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20070821115252.0211C1A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: pamarcelot Date: Tue Aug 21 04:52:50 2007 New Revision: 568080 URL: http://svn.apache.org/viewvc?rev=568080&view=rev Log: Improved the AttritypeSelection to display the name of the schema in a separate label beneath the TableViewer. Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/AttributeTypeSelectionDialog.java Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/AttributeTypeSelectionDialog.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/AttributeTypeSelectionDialog.java?rev=568080&r1=568079&r2=568080&view=diff ============================================================================== --- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/AttributeTypeSelectionDialog.java (original) +++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/dialogs/AttributeTypeSelectionDialog.java Tue Aug 21 04:52:50 2007 @@ -25,11 +25,14 @@ import java.util.List; import org.apache.directory.studio.apacheds.schemaeditor.Activator; +import org.apache.directory.studio.apacheds.schemaeditor.PluginConstants; import org.apache.directory.studio.apacheds.schemaeditor.model.AttributeTypeImpl; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.DecoratingLabelProvider; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; @@ -41,6 +44,7 @@ import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; @@ -48,6 +52,7 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.plugin.AbstractUIPlugin; /** @@ -69,6 +74,12 @@ private Table attributeTypesTable; private TableViewer attributeTypesTableViewer; + private Label schemaIconLabel; + + private Label schemaNameLabel; + + private Button chooseButton; + /** * Creates a new instance of AttributeTypeSelectionDialog. @@ -109,8 +120,7 @@ { public void modifyText( ModifyEvent e ) { - attributeTypesTableViewer.setInput( searchText.getText() ); - attributeTypesTable.select( 0 ); + setSearchInput( searchText.getText() ); } } ); searchText.addKeyListener( new KeyAdapter() @@ -148,18 +158,65 @@ } ); attributeTypesTableViewer = new TableViewer( attributeTypesTable ); - attributeTypesTableViewer.setUseHashlookup( true ); - attributeTypesTableViewer.setContentProvider( new AttributeTypeSelectionDialogContentProvider( hiddenAttributeTypes ) ); attributeTypesTableViewer.setLabelProvider( new DecoratingLabelProvider( new AttributeTypeSelectionDialogLabelProvider(), Activator.getDefault().getWorkbench() .getDecoratorManager().getLabelDecorator() ) ); + attributeTypesTableViewer.addSelectionChangedListener( new ISelectionChangedListener() + { + public void selectionChanged( SelectionChangedEvent event ) + { + StructuredSelection selection = ( StructuredSelection ) attributeTypesTableViewer.getSelection(); + if ( selection.isEmpty() ) + { + if ( ( chooseButton != null ) && ( !chooseButton.isDisposed() ) ) + { + chooseButton.setEnabled( false ); + } + schemaIconLabel.setImage( AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID, + PluginConstants.IMG_TRANSPARENT_16X16 ).createImage() ); + schemaNameLabel.setText( "" ); + } + else + { + if ( ( chooseButton != null ) && ( !chooseButton.isDisposed() ) ) + { + chooseButton.setEnabled( true ); + } + schemaIconLabel.setImage( AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID, + PluginConstants.IMG_SCHEMA ).createImage() ); + schemaNameLabel.setText( ( ( AttributeTypeImpl ) selection.getFirstElement() ).getSchema() ); + } + } + } ); + + // Schema Composite + Composite schemaComposite = new Composite( composite, SWT.BORDER ); + schemaComposite.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) ); + GridLayout schemaCompositeGridLayout = new GridLayout( 2, false ); + schemaCompositeGridLayout.horizontalSpacing = 0; + schemaCompositeGridLayout.verticalSpacing = 0; + schemaCompositeGridLayout.marginWidth = 2; + schemaCompositeGridLayout.marginHeight = 2; + schemaComposite.setLayout( schemaCompositeGridLayout ); + + // Schema Icon Label + schemaIconLabel = new Label( schemaComposite, SWT.NONE ); + GridData schemaIconLabelGridData = new GridData( SWT.NONE, SWT.BOTTOM, false, false ); + schemaIconLabelGridData.widthHint = 18; + schemaIconLabelGridData.heightHint = 16; + schemaIconLabel.setLayoutData( schemaIconLabelGridData ); + schemaIconLabel.setImage( AbstractUIPlugin.imageDescriptorFromPlugin( Activator.PLUGIN_ID, + PluginConstants.IMG_TRANSPARENT_16X16 ).createImage() ); + + // Schema Name Label + schemaNameLabel = new Label( schemaComposite, SWT.NONE ); + schemaNameLabel.setLayoutData( new GridData( SWT.FILL, SWT.BOTTOM, true, false ) ); + schemaNameLabel.setText( "" ); // We need to force the input to load the complete list of attribute types - attributeTypesTableViewer.setInput( "" ); //$NON-NLS-1$ - // We also need to force the selection of the first row - attributeTypesTable.select( 0 ); + setSearchInput( "" ); //$NON-NLS-1$ return composite; } @@ -170,9 +227,24 @@ */ protected void createButtonsForButtonBar( Composite parent ) { - createButton( parent, IDialogConstants.OK_ID, "Choose", true ); //$NON-NLS-1$ + chooseButton = createButton( parent, IDialogConstants.OK_ID, "Choose", true ); //$NON-NLS-1$ createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false ); + StructuredSelection selection = ( StructuredSelection ) attributeTypesTableViewer.getSelection(); + if ( selection.isEmpty() ) + { + if ( ( chooseButton != null ) && ( !chooseButton.isDisposed() ) ) + { + chooseButton.setEnabled( false ); + } + } + else + { + if ( ( chooseButton != null ) && ( !chooseButton.isDisposed() ) ) + { + chooseButton.setEnabled( true ); + } + } } @@ -231,6 +303,24 @@ for ( AttributeTypeImpl objectClass : attributeTypes ) { hiddenAttributeTypes.add( objectClass ); + } + } + + + /** + * Set the Search Input. + * + * @param searchString + * the Search String + */ + private void setSearchInput( String searchString ) + { + attributeTypesTableViewer.setInput( searchString ); + + Object firstElement = attributeTypesTableViewer.getElementAt( 0 ); + if ( firstElement != null ) + { + attributeTypesTableViewer.setSelection( new StructuredSelection( firstElement ), true ); } } }