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/11/16 17:05:29 UTC
svn commit: r475786 [9/13] - in
/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin: ./
META-INF/ icons/ ressources/ ressources/help/ ressources/help/html/
ressources/help/html/concepts/ ressources/help/html/concepts/images/
ressources/h...
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeFormEditorOverviewPage.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeFormEditorOverviewPage.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeFormEditorOverviewPage.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeFormEditorOverviewPage.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,890 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+
+import org.apache.directory.ldapstudio.schemas.model.AttributeType;
+import org.apache.directory.ldapstudio.schemas.model.MatchingRule;
+import org.apache.directory.ldapstudio.schemas.model.MatchingRules;
+import org.apache.directory.ldapstudio.schemas.model.Schema;
+import org.apache.directory.ldapstudio.schemas.model.SchemaPool;
+import org.apache.directory.ldapstudio.schemas.model.Syntax;
+import org.apache.directory.ldapstudio.schemas.model.Syntaxes;
+import org.apache.directory.shared.ldap.schema.UsageEnum;
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.events.HyperlinkAdapter;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+
+
+/**
+ * This class is the Overview Page of the Attribute Type Editor
+ */
+public class AttributeTypeFormEditorOverviewPage extends FormPage
+{
+ private Text name_text;
+ private Text oid_text;
+ private Text description_text;
+ private Hyperlink sup_label;
+ private Combo sup_combo;
+ private Combo usage_combo;
+ private Combo syntax_combo;
+ private Text syntaxLength_text;
+ private Button obsolete_checkbox;
+ private Button singleValue_checkbox;
+ private Button collective_checkbox;
+ private Button noUserModification_checkbox;
+ private Combo equality_combo;
+ private Combo ordering_combo;
+ private Combo substring_combo;
+ private AttributeType attributeType;
+ private Button aliases_button;
+ private String[] aliasesList;
+
+
+ /**
+ * Default constructor
+ * @param editor
+ * @param id
+ * @param title
+ */
+ public AttributeTypeFormEditorOverviewPage( FormEditor editor, String id, String title )
+ {
+ super( editor, id, title );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)
+ */
+ protected void createFormContent( IManagedForm managedForm )
+ {
+ ScrolledForm form = managedForm.getForm();
+ FormToolkit toolkit = managedForm.getToolkit();
+ GridLayout layout = new GridLayout();
+ form.getBody().setLayout( layout );
+
+ // Getting the input and the attributeType
+ AttributeTypeFormEditorInput input = ( AttributeTypeFormEditorInput ) getEditorInput();
+ attributeType = ( AttributeType ) input.getAttributeType();
+
+ // General Information Section
+ Section section_general_information = toolkit.createSection( form.getBody(), Section.DESCRIPTION
+ | Section.EXPANDED | Section.TITLE_BAR );
+ section_general_information.setDescription( Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.General_Section_Description" ) ); //$NON-NLS-1$
+ section_general_information.setText( Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.General_Section_Text" ) ); //$NON-NLS-1$
+
+ // Creating the layout of the section
+ Composite client_general_information = toolkit.createComposite( section_general_information );
+ GridLayout layout_general_information = new GridLayout();
+ layout_general_information.numColumns = 3;
+ client_general_information.setLayout( layout_general_information );
+ toolkit.paintBordersFor( client_general_information );
+ section_general_information.setClient( client_general_information );
+ section_general_information.setLayoutData( new GridData( GridData.FILL_BOTH ) );
+
+ // Adding elements to the section
+ // NAME Field
+ toolkit.createLabel( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Name" ) ); //$NON-NLS-1$
+ name_text = toolkit.createText( client_general_information, "" ); //$NON-NLS-1$
+ name_text.setLayoutData( new GridData( SWT.FILL, 0, true, false, 2, 1 ) );
+
+ // ALIASES Button
+ toolkit.createLabel( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Aliases" ) ); //$NON-NLS-1$
+ aliases_button = toolkit.createButton( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Manage_aliases" ), SWT.PUSH ); //$NON-NLS-1$
+ aliases_button.setLayoutData( new GridData( SWT.NONE, SWT.BEGINNING, false, false, 2, 1 ) );
+
+ // OID Field
+ toolkit
+ .createLabel( client_general_information, Messages.getString( "AttributeTypeFormEditorOverviewPage.OID" ) ); //$NON-NLS-1$
+ oid_text = toolkit.createText( client_general_information, "" ); //$NON-NLS-1$
+ oid_text.setLayoutData( new GridData( SWT.FILL, 0, true, false, 2, 1 ) );
+
+ // DESCRIPTION Field
+ toolkit.createLabel( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Description" ) ); //$NON-NLS-1$
+ description_text = toolkit.createText( client_general_information, "", SWT.MULTI | SWT.V_SCROLL ); //$NON-NLS-1$
+ description_text.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true, 2, 1 ) );
+
+ // SUP Combo
+ sup_label = toolkit.createHyperlink( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Superior_type" ), SWT.WRAP ); //$NON-NLS-1$
+ sup_combo = new Combo( client_general_information, SWT.READ_ONLY | SWT.SINGLE );
+ sup_combo.setLayoutData( new GridData( SWT.FILL, 0, true, false, 2, 1 ) );
+
+ // USAGE Combo
+ toolkit.createLabel( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Usage" ) ); //$NON-NLS-1$
+ usage_combo = new Combo( client_general_information, SWT.READ_ONLY | SWT.SINGLE );
+ usage_combo.setLayoutData( new GridData( SWT.FILL, 0, true, false, 2, 1 ) );
+
+ // SYNTAX Combo
+ toolkit.createLabel( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Synatx" ) ); //$NON-NLS-1$
+ syntax_combo = new Combo( client_general_information, SWT.READ_ONLY | SWT.SINGLE );
+ syntax_combo.setLayoutData( new GridData( SWT.FILL, 0, true, false, 2, 1 ) );
+
+ // SYNTAX LENGTH Field
+ toolkit.createLabel( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Syntax_length" ) ); //$NON-NLS-1$
+ syntaxLength_text = toolkit.createText( client_general_information, "" ); //$NON-NLS-1$
+ syntaxLength_text.setLayoutData( new GridData( SWT.FILL, 0, true, false, 2, 1 ) );
+
+ // OBSOLETE Checkbox
+ toolkit.createLabel( client_general_information, "" ); // Filling the first column //$NON-NLS-1$
+ obsolete_checkbox = toolkit.createButton( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Obsolete" ), SWT.CHECK ); //$NON-NLS-1$
+ obsolete_checkbox.setLayoutData( new GridData( SWT.FILL, 0, true, false ) );
+
+ // SINGLE-VALUE Checkbox
+ singleValue_checkbox = toolkit.createButton( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Single-Value" ), SWT.CHECK ); //$NON-NLS-1$
+ singleValue_checkbox.setLayoutData( new GridData( SWT.FILL, 0, true, false ) );
+
+ // COLLECTIVE Checkbox
+ toolkit.createLabel( client_general_information, "" ); // Filling the first column //$NON-NLS-1$
+ collective_checkbox = toolkit.createButton( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Collective" ), SWT.CHECK ); //$NON-NLS-1$
+ collective_checkbox.setLayoutData( new GridData( SWT.FILL, 0, true, false ) );
+
+ // NO-USER-MODIFICATION Checkbox
+ noUserModification_checkbox = toolkit.createButton( client_general_information, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.No-User-Modification" ), SWT.CHECK ); //$NON-NLS-1$
+ noUserModification_checkbox.setLayoutData( new GridData( SWT.FILL, 0, true, false ) );
+
+ // Matching Rules Section
+ Section section_matching_rules = toolkit.createSection( form.getBody(), Section.DESCRIPTION | Section.EXPANDED
+ | Section.TITLE_BAR );
+ section_matching_rules.setDescription( Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Specify_matching_rules" ) ); //$NON-NLS-1$
+ section_matching_rules.setText( Messages.getString( "AttributeTypeFormEditorOverviewPage.Matching_Rules" ) ); //$NON-NLS-1$
+
+ // Creating the layout of the section
+ Composite client_matching_rules = toolkit.createComposite( section_matching_rules );
+ GridLayout layout_matching_rules = new GridLayout();
+ layout_matching_rules.numColumns = 2;
+ client_matching_rules.setLayout( layout_matching_rules );
+ toolkit.paintBordersFor( client_matching_rules );
+ section_matching_rules.setClient( client_matching_rules );
+ section_matching_rules.setLayoutData( new GridData( GridData.FILL_BOTH ) );
+
+ // Adding elements to the section
+ // EQUALITY Combo
+ toolkit
+ .createLabel( client_matching_rules, Messages.getString( "AttributeTypeFormEditorOverviewPage.Equility" ) ); //$NON-NLS-1$
+ equality_combo = new Combo( client_matching_rules, SWT.READ_ONLY | SWT.SINGLE );
+ equality_combo.setLayoutData( new GridData( SWT.FILL, 0, true, false ) );
+
+ // ORDERING Combo
+ toolkit
+ .createLabel( client_matching_rules, Messages.getString( "AttributeTypeFormEditorOverviewPage.Ordering" ) ); //$NON-NLS-1$
+ ordering_combo = new Combo( client_matching_rules, SWT.READ_ONLY | SWT.SINGLE );
+ ordering_combo.setLayoutData( new GridData( SWT.FILL, 0, true, false ) );
+
+ // SUBSTRING Combo
+ toolkit.createLabel( client_matching_rules, Messages
+ .getString( "AttributeTypeFormEditorOverviewPage.Substring" ) ); //$NON-NLS-1$
+ substring_combo = new Combo( client_matching_rules, SWT.READ_ONLY | SWT.SINGLE );
+ substring_combo.setLayoutData( new GridData( SWT.FILL, 0, true, false ) );
+
+ // Initialization from the "input" attribute type
+ initFieldsContentFromInput();
+
+ // Listeners initialization
+ initListeners();
+ }
+
+
+ private void initFieldsContentFromInput()
+ {
+ // NAME Field
+ if ( attributeType.getNames()[0] != null )
+ {
+ this.name_text.setText( attributeType.getNames()[0] );
+ }
+
+ // ALIASES
+ String[] names = attributeType.getNames();
+ ArrayList<String> aliases = new ArrayList<String>();
+ for ( int i = 1; i < names.length; i++ )
+ {
+ String name = names[i];
+ aliases.add( name );
+ }
+ this.aliasesList = aliases.toArray( new String[0] );
+
+ // OID Field
+ if ( attributeType.getOid() != null )
+ {
+ this.oid_text.setText( attributeType.getOid() );
+ }
+
+ // DESCRIPTION Field
+ if ( attributeType.getDescription() != null )
+ {
+ this.description_text.setText( attributeType.getDescription() );
+ }
+
+ // SUP Combo
+ initSup_combo();
+
+ // USAGE Combo
+ initUsage_combo();
+
+ // SYNTAX Combo
+ initSyntax_combo();
+
+ // SYNTAX LENGTH Field
+ if ( attributeType.getLength() != -1 )
+ {
+ this.syntaxLength_text.setText( attributeType.getLength() + "" ); //$NON-NLS-1$
+ }
+
+ // OBSOLETE Checkbox
+ this.obsolete_checkbox.setSelection( attributeType.isObsolete() );
+
+ // SINGLE-VALUE Checkbox
+ this.singleValue_checkbox.setSelection( attributeType.isSingleValue() );
+
+ // COLLECTIVE Checkbox
+ this.collective_checkbox.setSelection( attributeType.isCollective() );
+
+ // NO-USER-MODIFICATION Checkbox
+ this.noUserModification_checkbox.setSelection( attributeType.isNoUserModification() );
+
+ // EQUALITY Combo
+ initEqualityCombo();
+
+ // ORDERING Combo
+ initOrderingCombo();
+
+ // SUBSTRING
+ initSubstringCombo();
+ }
+
+
+ private void initSup_combo()
+ {
+ SchemaPool pool = SchemaPool.getInstance();
+ ArrayList<AttributeType> atList = new ArrayList<AttributeType>( pool.getAttributeTypesAsHashTableByName()
+ .values() );
+
+ //remove duplicate entries
+ HashSet<AttributeType> set = new HashSet<AttributeType>( atList );
+ atList = new ArrayList<AttributeType>( set );
+
+ // Sorting the list
+ Collections.sort( atList, new Comparator<AttributeType>()
+ {
+ public int compare( AttributeType arg0, AttributeType arg1 )
+ {
+ String oneName = arg0.getNames()[0];
+ String twoName = arg1.getNames()[0];
+ return oneName.compareTo( twoName );
+ }
+ } );
+
+ // Creating the UI
+ sup_combo.add( Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ); //$NON-NLS-1$
+ sup_combo.select( 0 );
+ int counter = 1;
+ for ( AttributeType at : atList )
+ {
+ // TODO : Ajouter une verification pour qu'on ne puisse pas ajouter en sup l'objectclass lui meme et ses alias
+ sup_combo.add( at.getNames()[0], counter );
+ if ( ( ( attributeType.getSuperior() != null ) || ( attributeType.getSuperior() != "" ) ) && ( at.getNames()[0].equals( attributeType.getSuperior() ) ) ) { //$NON-NLS-1$
+ // We select the right superior
+ sup_combo.select( counter );
+ }
+ counter++;
+ }
+ }
+
+
+ private void initUsage_combo()
+ {
+ usage_combo.add( "directoryOperation", 0 ); //$NON-NLS-1$
+ usage_combo.add( "distributedOperation", 1 ); //$NON-NLS-1$
+ usage_combo.add( "DSAOperation", 2 ); //$NON-NLS-1$
+ usage_combo.add( "userApplications", 3 ); //$NON-NLS-1$
+ if ( attributeType.getUsage() == UsageEnum.DIRECTORYOPERATION )
+ {
+ usage_combo.select( 0 );
+ }
+ else if ( attributeType.getUsage() == UsageEnum.DISTRIBUTEDOPERATION )
+ {
+ usage_combo.select( 1 );
+ }
+ else if ( attributeType.getUsage() == UsageEnum.DSAOPERATION )
+ {
+ usage_combo.select( 2 );
+ }
+ else if ( attributeType.getUsage() == UsageEnum.USERAPPLICATIONS )
+ {
+ usage_combo.select( 3 );
+ }
+ }
+
+
+ private void initSyntax_combo()
+ {
+ syntax_combo.add( Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ), 0 ); //$NON-NLS-1$
+ syntax_combo.select( 0 );
+ ArrayList<Syntax> syntaxes = Syntaxes.getSyntaxes();
+ int counter = 1;
+ for ( Syntax syntax : syntaxes )
+ {
+ syntax_combo.add( syntax.getName() );
+ if ( ( attributeType.getSyntax() != null ) && ( attributeType.getSyntax().equals( syntax.getOid() ) ) )
+ {
+ syntax_combo.select( counter );
+ }
+ counter++;
+ }
+ }
+
+
+ private void initEqualityCombo()
+ {
+ equality_combo.add( Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ); //$NON-NLS-1$
+ equality_combo.select( 0 );
+ int counter = 1;
+ ArrayList<MatchingRule> equalityMatchingRules = MatchingRules.getEqualityMatchingRules();
+ for ( MatchingRule matchingRule : equalityMatchingRules )
+ {
+ equality_combo.add( matchingRule.getName() );
+ if ( ( attributeType.getEquality() != null ) && attributeType.getEquality().equals( matchingRule.getName() ) )
+ {
+ equality_combo.select( counter );
+ }
+ counter++;
+ }
+ }
+
+
+ private void initOrderingCombo()
+ {
+ ordering_combo.add( Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ); //$NON-NLS-1$
+ ordering_combo.select( 0 );
+ int counter = 1;
+ ArrayList<MatchingRule> orderingMatchingRules = MatchingRules.getOrderingMatchingRules();
+ for ( MatchingRule matchingRule : orderingMatchingRules )
+ {
+ ordering_combo.add( matchingRule.getName() );
+ if ( ( attributeType.getOrdering() != null ) && attributeType.getOrdering().equals( matchingRule.getName() ) )
+ {
+ ordering_combo.select( counter );
+ }
+ counter++;
+ }
+ }
+
+
+ private void initSubstringCombo()
+ {
+ substring_combo.add( Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ); //$NON-NLS-1$
+ substring_combo.select( 0 );
+ int counter = 1;
+ ArrayList<MatchingRule> substringMatchingRules = MatchingRules.getSubstringMatchingRules();
+ for ( MatchingRule matchingRule : substringMatchingRules )
+ {
+ substring_combo.add( matchingRule.getName() );
+ if ( ( attributeType.getSubstr() != null ) && attributeType.getSubstr().equals( matchingRule.getName() ) )
+ {
+ substring_combo.select( counter );
+ }
+ counter++;
+ }
+ }
+
+
+ private void initListeners()
+ {
+ // NAME Field
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ name_text.setEditable( false );
+ }
+ else
+ {
+ // else we set the listener
+ name_text.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // ALIASES Button
+ // The user can always access to the Manage Aliases Window, but if the object class is in a core-schema file editing will be disabled
+ aliases_button.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ ManageAliasesDialog manageDialog = new ManageAliasesDialog( null, aliasesList, ( attributeType
+ .getOriginatingSchema().type == Schema.SchemaType.coreSchema ) );
+ if ( manageDialog.open() != Window.OK )
+ {
+ return;
+ }
+ if ( manageDialog.isDirty() )
+ {
+ aliasesList = manageDialog.getAliasesList();
+ setEditorDirty();
+ }
+ }
+ } );
+
+ // OID Field
+ // AT THE MOMENT, WE CANNOT SET A NEW OID TO THE ATTRIBUTE TYPE, SO WE DISABLE THIS FUNCTIONNALITY
+ oid_text.setEditable( false );
+ // AND WE REMOVE THE LISTENERS
+ // if (attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema) {
+ // // If the attribute type is in a core-schema file, we disable editing
+ // oid_text.setEditable(false);
+ // } else {
+ // // else we set the listener
+ // oid_text.addModifyListener(new ModifyListener() {
+ // public void modifyText(ModifyEvent e) { setEditorDirty(); }
+ // });
+ // }
+
+ // DESCRIPTION Field
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ description_text.setEditable( false );
+ }
+ else
+ {
+ // else we set the listener
+ description_text.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // SUP Combo
+ sup_label.addHyperlinkListener( new HyperlinkAdapter()
+ {
+ public void linkActivated( HyperlinkEvent e )
+ {
+ if ( !sup_combo.getItem( sup_combo.getSelectionIndex() ).equals(
+ Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ) ) { //$NON-NLS-1$
+ SchemaPool pool = SchemaPool.getInstance();
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+
+ AttributeTypeFormEditorInput input = new AttributeTypeFormEditorInput( pool
+ .getAttributeType( sup_combo.getItem( sup_combo.getSelectionIndex() ) ) );
+ String editorId = AttributeTypeFormEditor.ID;
+ try
+ {
+ page.openEditor( input, editorId );
+ }
+ catch ( PartInitException exception )
+ {
+ Logger.getLogger( AttributeTypeFormEditorInput.class ).debug( "error when opening the editor" ); //$NON-NLS-1$
+ }
+ }
+ }
+ } );
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ sup_combo.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ sup_combo.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // USAGE Combo
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ usage_combo.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ usage_combo.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // SYNTAX Combo
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ syntax_combo.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ syntax_combo.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // SYNTAX LENGTH Field
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ syntaxLength_text.setEditable( false );
+ }
+ else
+ {
+ // else we set the listener
+ syntaxLength_text.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // OBSOLETE Checkbox
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ obsolete_checkbox.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ obsolete_checkbox.addSelectionListener( new SelectionListener()
+ {
+ public void widgetDefaultSelected( SelectionEvent e )
+ {
+ }
+
+
+ public void widgetSelected( SelectionEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // SINGLE-VALUE Checkbox
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ singleValue_checkbox.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ singleValue_checkbox.addSelectionListener( new SelectionListener()
+ {
+ public void widgetDefaultSelected( SelectionEvent e )
+ {
+ }
+
+
+ public void widgetSelected( SelectionEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // COLLECTIVE Checkbox
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ collective_checkbox.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ collective_checkbox.addSelectionListener( new SelectionListener()
+ {
+ public void widgetDefaultSelected( SelectionEvent e )
+ {
+ }
+
+
+ public void widgetSelected( SelectionEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // NO-USER-MODIFICATION Checkbox
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ noUserModification_checkbox.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ noUserModification_checkbox.addSelectionListener( new SelectionListener()
+ {
+ public void widgetDefaultSelected( SelectionEvent e )
+ {
+ }
+
+
+ public void widgetSelected( SelectionEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // EQUALITY Combo
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ equality_combo.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ equality_combo.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // ORDERING Combo
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ ordering_combo.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ ordering_combo.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+
+ // SUBSTRING Combo
+ if ( attributeType.getOriginatingSchema().type == Schema.SchemaType.coreSchema )
+ {
+ // If the attribute type is in a core-schema file, we disable editing
+ substring_combo.setEnabled( false );
+ }
+ else
+ {
+ // else we set the listener
+ substring_combo.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ setEditorDirty();
+ }
+ } );
+ }
+ }
+
+
+ private void setEditorDirty()
+ {
+ ( ( AttributeTypeFormEditor ) getEditor() ).setDirty( true );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormPage#doSave(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ public void doSave( IProgressMonitor monitor )
+ {
+ // NAME
+ // TODO : Pour le moment on ne gere pas les alias, seul un nom est possible
+ // String[] oldNames = attributeType.getNames();
+ // oldNames[0] = name_text.getText();
+ // attributeType.setNames(oldNames);
+ ArrayList<String> names = new ArrayList<String>();
+ names.add( name_text.getText() );
+ for ( int i = 0; i < this.aliasesList.length; i++ )
+ {
+ names.add( this.aliasesList[i] );
+ }
+ attributeType.setNames( names.toArray( new String[0] ) );
+
+ // OID
+ // TODO : Il n'y a pas de setOid sur l'attributeTypeLiteral
+ //attributeType.setOid(oid_text.getText());
+
+ // DESCRIPTION
+ attributeType.setDescription( description_text.getText() );
+
+ // SUP
+ if ( sup_combo.getItem( sup_combo.getSelectionIndex() ).equals(
+ Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ) ) { //$NON-NLS-1$
+ attributeType.setSuperior( "" ); //$NON-NLS-1$
+ }
+ else
+ {
+ attributeType.setSuperior( sup_combo.getItem( sup_combo.getSelectionIndex() ) );
+ }
+
+ // USAGE
+ if ( usage_combo.getSelectionIndex() == 0 )
+ {
+ attributeType.setUsage( UsageEnum.DIRECTORYOPERATION );
+ }
+ else if ( usage_combo.getSelectionIndex() == 1 )
+ {
+ attributeType.setUsage( UsageEnum.DISTRIBUTEDOPERATION );
+ }
+ else if ( usage_combo.getSelectionIndex() == 2 )
+ {
+ attributeType.setUsage( UsageEnum.DSAOPERATION );
+ }
+ else if ( usage_combo.getSelectionIndex() == 3 )
+ {
+ attributeType.setUsage( UsageEnum.USERAPPLICATIONS );
+ }
+
+ // SYNTAX
+ if ( syntax_combo.getItem( syntax_combo.getSelectionIndex() ).equals(
+ Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ) ) { //$NON-NLS-1$
+ attributeType.setSyntax( "" ); //$NON-NLS-1$
+ }
+ else
+ {
+ attributeType.setSyntax( Syntaxes.getSyntax( syntax_combo.getItem( syntax_combo.getSelectionIndex() ) )
+ .getOid() );
+ }
+
+ // SYNTAX LENGTH
+ if ( syntaxLength_text.getText().length() == 0 )
+ {
+ attributeType.setLength( -1 );
+ }
+ else
+ {
+ attributeType.setLength( Integer.parseInt( syntaxLength_text.getText() ) );
+ }
+
+ // OBSOLETE
+ attributeType.setObsolete( obsolete_checkbox.getSelection() );
+
+ // SINGLE-VALUE
+ attributeType.setSingleValue( singleValue_checkbox.getSelection() );
+
+ // COLLECTIVE
+ attributeType.setCollective( collective_checkbox.getSelection() );
+
+ // NO-USE-MODIFICATION
+ attributeType.setNoUserModification( noUserModification_checkbox.getSelection() );
+
+ // EQUALITY
+ if ( equality_combo.getItem( equality_combo.getSelectionIndex() ).equals(
+ Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ) ) { //$NON-NLS-1$
+ attributeType.setEquality( "" ); //$NON-NLS-1$
+ }
+ else
+ {
+ attributeType.setEquality( equality_combo.getItem( equality_combo.getSelectionIndex() ) );
+ }
+
+ // ORDERING
+ if ( ordering_combo.getItem( ordering_combo.getSelectionIndex() ).equals(
+ Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ) ) { //$NON-NLS-1$
+ attributeType.setOrdering( "" ); //$NON-NLS-1$
+ }
+ else
+ {
+ attributeType.setOrdering( ordering_combo.getItem( ordering_combo.getSelectionIndex() ) );
+ }
+
+ // SUBSTRING
+ if ( substring_combo.getItem( substring_combo.getSelectionIndex() ).equals(
+ Messages.getString( "AttributeTypeFormEditorOverviewPage.(None)" ) ) ) { //$NON-NLS-1$
+ attributeType.setSubstr( "" ); //$NON-NLS-1$
+ }
+ else
+ {
+ attributeType.setSubstr( substring_combo.getItem( substring_combo.getSelectionIndex() ) );
+ }
+ }
+}
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeFormEditorSourceCodePage.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeFormEditorSourceCodePage.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeFormEditorSourceCodePage.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeFormEditorSourceCodePage.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,99 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import org.apache.directory.ldapstudio.schemas.model.AttributeType;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+
+
+/**
+ * This class is the Source Code Page of the Attribute Type Editor
+ */
+public class AttributeTypeFormEditorSourceCodePage extends FormPage
+{
+ private AttributeType attributeType;
+ private Text sourceCode_text;
+
+
+ /**
+ * Default constructor
+ * @param editor
+ * @param id
+ * @param title
+ */
+ public AttributeTypeFormEditorSourceCodePage( FormEditor editor, String id, String title )
+ {
+ super( editor, id, title );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)
+ */
+ protected void createFormContent( IManagedForm managedForm )
+ {
+ ScrolledForm form = managedForm.getForm();
+ FormToolkit toolkit = managedForm.getToolkit();
+ GridLayout layout = new GridLayout();
+ form.getBody().setLayout( layout );
+ toolkit.paintBordersFor( form.getBody() );
+
+ // Getting the input and the objectClass
+ AttributeTypeFormEditorInput input = ( AttributeTypeFormEditorInput ) getEditorInput();
+ attributeType = ( AttributeType ) input.getAttributeType();
+
+ // SOURCE CODE Field
+ sourceCode_text = toolkit.createText( form.getBody(), "", SWT.MULTI ); //$NON-NLS-1$
+ sourceCode_text.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+ sourceCode_text.setEditable( false );
+
+ // Initialization from the "input" object class
+ initFieldsContentFromInput();
+ }
+
+
+ private void initFieldsContentFromInput()
+ {
+ // SOURCE CODE Field
+ sourceCode_text.setText( attributeType.write() );
+ }
+
+
+ /**
+ * Refreshes the source code field of the page
+ */
+ public void refresh()
+ {
+ if ( sourceCode_text != null )
+ {
+ initFieldsContentFromInput();
+ }
+ }
+}
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialog.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialog.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialog.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialog.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,211 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+
+
+/**
+ * This class is Attribute Type Selection Dialog, that allows user to select an attribute type
+ */
+public class AttributeTypeSelectionDialog extends Dialog
+{
+ private Table attributeTypes_table;
+ private String selectedAttributeType = null;
+ private Text search_text;
+ private TableViewer tableViewer;
+
+
+ /**
+ * Default constructor
+ * @param parentShell
+ */
+ public AttributeTypeSelectionDialog( Shell parentShell )
+ {
+ super( parentShell );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+ */
+ protected void configureShell( Shell newShell )
+ {
+ super.configureShell( newShell );
+ newShell.setText( Messages.getString( "AttributeTypeSelectionDialog.Attribute_type_Selection" ) ); //$NON-NLS-1$
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+ */
+ protected Control createDialogArea( Composite parent )
+ {
+ Composite composite = new Composite( parent, SWT.NONE );
+ GridLayout layout = new GridLayout( 1, false );
+ composite.setLayout( layout );
+
+ Label choose_label = new Label( composite, SWT.NONE );
+ choose_label.setText( Messages.getString( "AttributeTypeSelectionDialog.Choose_an_attribute_type" ) ); //$NON-NLS-1$
+ choose_label.setLayoutData( new GridData( GridData.FILL, SWT.NONE, true, false ) );
+
+ search_text = new Text( composite, SWT.BORDER );
+ search_text.setLayoutData( new GridData( GridData.FILL, SWT.NONE, true, false ) );
+ search_text.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent e )
+ {
+ tableViewer.setInput( search_text.getText() );
+ attributeTypes_table.select( 0 );
+ }
+ } );
+ search_text.addKeyListener( new KeyListener()
+ {
+ public void keyPressed( KeyEvent e )
+ {
+ if ( e.keyCode == SWT.ARROW_DOWN )
+ {
+ attributeTypes_table.setFocus();
+ }
+ }
+
+
+ public void keyReleased( KeyEvent e )
+ {
+ }
+ } );
+
+ Label matching_label = new Label( composite, SWT.NONE );
+ matching_label.setText( Messages.getString( "AttributeTypeSelectionDialog.Matching_attribute_types" ) ); //$NON-NLS-1$
+ matching_label.setLayoutData( new GridData( GridData.FILL, SWT.None, true, false ) );
+
+ attributeTypes_table = new Table( composite, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
+ | SWT.FULL_SELECTION | SWT.HIDE_SELECTION );
+ GridData gridData = new GridData( GridData.FILL, GridData.FILL, true, true );
+ gridData.heightHint = 150;
+ gridData.minimumHeight = 150;
+ gridData.widthHint = 350;
+ gridData.minimumWidth = 350;
+ attributeTypes_table.setLayoutData( gridData );
+ attributeTypes_table.setHeaderVisible( true );
+ attributeTypes_table.addMouseListener( new MouseListener()
+ {
+ public void mouseDoubleClick( MouseEvent e )
+ {
+ if ( attributeTypes_table.getSelectionIndex() != 1 )
+ {
+ okPressed();
+ }
+ }
+
+
+ public void mouseDown( MouseEvent e )
+ {
+ }
+
+
+ public void mouseUp( MouseEvent e )
+ {
+ }
+ } );
+
+ TableColumn column = new TableColumn( attributeTypes_table, SWT.LEFT, 0 );
+ column.setText( "" ); //$NON-NLS-1$
+ column.setWidth( 20 );
+
+ column = new TableColumn( attributeTypes_table, SWT.LEFT, 1 );
+ column.setText( Messages.getString( "AttributeTypeSelectionDialog.Name" ) ); //$NON-NLS-1$
+ column.setWidth( 230 );
+
+ column = new TableColumn( attributeTypes_table, SWT.LEFT, 2 );
+ column.setText( Messages.getString( "AttributeTypeSelectionDialog.Schema" ) ); //$NON-NLS-1$
+ column.setWidth( 100 );
+
+ tableViewer = new TableViewer( attributeTypes_table );
+ tableViewer.setUseHashlookup( true );
+
+ tableViewer.setContentProvider( new AttributeTypeSelectionDialogContentProvider() );
+ tableViewer.setLabelProvider( new AttributeTypeSelectionDialogLabelProvider() );
+
+ // We need to force the input to load the complete list of attribute types
+ tableViewer.setInput( "" ); //$NON-NLS-1$
+ // We also need to force the selection of the first row
+ attributeTypes_table.select( 0 );
+
+ return composite;
+ }
+
+
+ protected void createButtonsForButtonBar( Composite parent )
+ {
+ createButton( parent, IDialogConstants.OK_ID, Messages.getString( "AttributeTypeSelectionDialog.Add" ), true ); //$NON-NLS-1$
+ createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
+
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+ */
+ protected void okPressed()
+ {
+ if ( attributeTypes_table.getSelectionIndex() == -1 )
+ {
+ MessageDialog
+ .openError(
+ getShell(),
+ Messages.getString( "AttributeTypeSelectionDialog.Invalid_Selection" ), Messages.getString( "AttributeTypeSelectionDialog.You_have_to_choose_an_attribute_type" ) ); //$NON-NLS-1$ //$NON-NLS-2$
+ return;
+ }
+ selectedAttributeType = attributeTypes_table.getItem( attributeTypes_table.getSelectionIndex() ).getText( 1 );
+ super.okPressed();
+ }
+
+
+ /**
+ * Returns the selected attribute type
+ * @return the selected attribute type
+ */
+ public String getSelectedAttributeType()
+ {
+ return selectedAttributeType;
+ }
+}
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialogContentProvider.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialogContentProvider.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialogContentProvider.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialogContentProvider.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,108 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.directory.ldapstudio.schemas.model.AttributeType;
+import org.apache.directory.ldapstudio.schemas.model.SchemaPool;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+
+public class AttributeTypeSelectionDialogContentProvider implements IStructuredContentProvider
+{
+
+ @SuppressWarnings("unchecked")//$NON-NLS-1$
+ public Object[] getElements( Object inputElement )
+ {
+ if ( inputElement instanceof String )
+ {
+ String searchText = ( String ) inputElement;
+ String searchRegexp;
+ if ( searchText.length() == 0 )
+ {
+ searchRegexp = ".*"; //$NON-NLS-1$
+ }
+ else
+ {
+ searchRegexp = searchText + ".*"; //$NON-NLS-1$
+ }
+
+ Pattern pattern = Pattern.compile( searchRegexp, Pattern.CASE_INSENSITIVE );
+ ArrayList resultsList = new ArrayList();
+
+ SchemaPool schemaPool = SchemaPool.getInstance();
+
+ ArrayList<AttributeType> atList = new ArrayList<AttributeType>( schemaPool
+ .getAttributeTypesAsHashTableByName().values() );
+
+ // Sorting the list
+ Collections.sort( atList, new Comparator<AttributeType>()
+ {
+ public int compare( AttributeType arg0, AttributeType arg1 )
+ {
+ String oneName = arg0.getNames()[0];
+ String twoName = arg1.getNames()[0];
+ return oneName.compareTo( twoName );
+ }
+ } );
+
+ //search for all matching elements
+ for ( AttributeType element : atList )
+ {
+
+ String[] names = element.getNames();
+ for ( String name : names )
+ {
+ Matcher m = pattern.matcher( name );
+ if ( m.matches() )
+ {
+ if ( !resultsList.contains( element ) )
+ {
+ resultsList.add( element );
+ }
+ break;
+ }
+ }
+ }
+ //returns the result list
+ return resultsList.toArray();
+ }
+ return new Object[0];
+ }
+
+
+ public void dispose()
+ {
+ }
+
+
+ public void inputChanged( Viewer viewer, Object oldInput, Object newInput )
+ {
+ }
+
+}
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialogLabelProvider.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialogLabelProvider.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialogLabelProvider.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/AttributeTypeSelectionDialogLabelProvider.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,69 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import org.apache.directory.ldapstudio.schemas.controller.Application;
+import org.apache.directory.ldapstudio.schemas.model.SchemaElement;
+import org.apache.directory.ldapstudio.schemas.view.IImageKeys;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+
+public class AttributeTypeSelectionDialogLabelProvider extends LabelProvider implements ITableLabelProvider
+{
+
+ public Image getColumnImage( Object element, int columnIndex )
+ {
+ if ( columnIndex == 0 )
+ {
+ return AbstractUIPlugin.imageDescriptorFromPlugin( Application.PLUGIN_ID, IImageKeys.ATTRIBUTE_TYPE )
+ .createImage();
+ }
+ return null;
+ }
+
+
+ public String getColumnText( Object element, int columnIndex )
+ {
+ String result = ""; //$NON-NLS-1$
+ if ( element instanceof SchemaElement )
+ {
+ SchemaElement schemaElement = ( SchemaElement ) element;
+ switch ( columnIndex )
+ {
+ case 0: // COMPLETED_COLUMN
+ break;
+ case 1:
+ result = schemaElement.getNames()[0];
+ break;
+ case 2:
+ result = schemaElement.getOriginatingSchema().getName();
+ break;
+ default:
+ break;
+ }
+ }
+ return result;
+ }
+}
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ManageAliasesDialog.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ManageAliasesDialog.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ManageAliasesDialog.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ManageAliasesDialog.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,256 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import java.util.ArrayList;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.TraverseEvent;
+import org.eclipse.swt.events.TraverseListener;
+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.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+
+
+public class ManageAliasesDialog extends Dialog
+{
+
+ private Table aliases_table;
+ private Text newAlias_text;
+ private Button newAlias_button;
+ private String[] aliasesList;
+ private boolean disableEditing;
+ private boolean dirty = false;
+
+
+ public ManageAliasesDialog( Shell parent, String[] list, boolean disableEditing )
+ {
+ super( parent );
+ this.aliasesList = list;
+ this.disableEditing = disableEditing;
+ }
+
+
+ protected void configureShell( Shell newShell )
+ {
+ super.configureShell( newShell );
+ newShell.setText( Messages.getString( "ManageAliasesDialog.Manage_aliases" ) ); //$NON-NLS-1$
+ }
+
+
+ protected Control createDialogArea( Composite parent )
+ {
+ Composite composite = new Composite( parent, SWT.NONE );
+ GridLayout layout = new GridLayout( 2, false );
+ layout.marginHeight = 10;
+ layout.marginWidth = 10;
+ composite.setLayout( layout );
+ composite.setLayoutData( new GridData( GridData.FILL, GridData.FILL, true, true ) );
+
+ // ALIASES Label
+ Label aliases_label = new Label( composite, SWT.NONE );
+ aliases_label.setText( Messages.getString( "ManageAliasesDialog.Aliases" ) ); //$NON-NLS-1$
+ aliases_label.setLayoutData( new GridData( GridData.FILL, SWT.NONE, true, true, 2, 1 ) );
+
+ // ALIASES Table
+ aliases_table = new Table( composite, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION
+ | SWT.HIDE_SELECTION );
+ GridData gridData = new GridData( GridData.FILL, GridData.FILL, true, true, 2, 1 );
+ gridData.heightHint = 100;
+ gridData.minimumHeight = 100;
+ gridData.widthHint = 200;
+ gridData.minimumWidth = 200;
+ aliases_table.setLayoutData( gridData );
+
+ // ADD Label
+ Label add_label = new Label( composite, SWT.NONE );
+ add_label.setText( Messages.getString( "ManageAliasesDialog.Add_an_alias" ) ); //$NON-NLS-1$
+ add_label.setLayoutData( new GridData( GridData.FILL, SWT.NONE, true, true, 2, 1 ) );
+
+ // NEW ALIAS Field
+ newAlias_text = new Text( composite, SWT.BORDER );
+ newAlias_text.setLayoutData( new GridData( GridData.FILL, SWT.CENTER, true, false ) );
+
+ // Add Button
+ newAlias_button = new Button( composite, SWT.PUSH );
+ newAlias_button.setText( Messages.getString( "ManageAliasesDialog.Add" ) ); //$NON-NLS-1$
+
+ // Table initialization
+ initAliases_table();
+
+ // Listeners initialization
+ initListeners();
+
+ // Setting the focus to the text field
+ newAlias_text.setFocus();
+
+ return composite;
+ }
+
+
+ private void initAliases_table()
+ {
+ for ( int i = 0; i < aliasesList.length; i++ )
+ {
+ String aliasName = aliasesList[i];
+ TableItem newItem = new TableItem( aliases_table, SWT.NONE );
+ newItem.setText( aliasName );
+ }
+ }
+
+
+ private void initListeners()
+ {
+ if ( this.disableEditing )
+ {
+ aliases_table.setEnabled( false );
+ newAlias_text.setEnabled( false );
+ newAlias_button.setEnabled( false );
+ }
+ else
+ {
+ aliases_table.addKeyListener( new KeyListener()
+ {
+ public void keyPressed( KeyEvent e )
+ {
+ if ( ( e.keyCode == SWT.DEL ) || ( e.keyCode == Action.findKeyCode( "BACKSPACE" ) ) ) { //$NON-NLS-1$
+ // NOTE: I couldn't find the corresponding Identificator in the SWT.SWT Class,
+ // so I Used JFace Action fineKeyCode method to get the Backspace keycode.
+ aliases_table.remove( aliases_table.getSelectionIndices() );
+ // Setting the Dialog has dirty
+ dirty = true;
+ }
+ }
+
+
+ public void keyReleased( KeyEvent e )
+ {
+ }
+ } );
+
+ // Aliases Table's Popup Menu
+ Menu menu = new Menu( getShell(), SWT.POP_UP );
+ aliases_table.setMenu( menu );
+ MenuItem deleteMenuItem = new MenuItem( menu, SWT.PUSH );
+ deleteMenuItem.setText( Messages.getString( "ManageAliasesDialog.Delete" ) ); //$NON-NLS-1$
+ // Adding the listener
+ deleteMenuItem.addListener( SWT.Selection, new Listener()
+ {
+ public void handleEvent( Event event )
+ {
+ aliases_table.remove( aliases_table.getSelectionIndices() );
+ // Setting the Dialog has dirty
+ dirty = true;
+ }
+ } );
+
+ // NEW ALIAS Field
+ newAlias_text.addTraverseListener( new TraverseListener()
+ {
+ public void keyTraversed( TraverseEvent e )
+ {
+ if ( e.detail == SWT.TRAVERSE_RETURN )
+ {
+ addANewAlias();
+ }
+ }
+ } );
+
+ // ADD Button
+ newAlias_button.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ addANewAlias();
+ }
+ } );
+ }
+ }
+
+
+ private void addANewAlias()
+ {
+ if ( newAlias_text.getText().length() != 0 )
+ {
+ TableItem newItem = new TableItem( aliases_table, SWT.NONE );
+ newItem.setText( newAlias_text.getText() );
+ newAlias_text.setText( "" ); //$NON-NLS-1$
+ aliases_table.deselectAll();
+ aliases_table.select( aliases_table.getItemCount() - 1 );
+ newAlias_text.setFocus();
+ // Setting the Dialog has dirty
+ this.dirty = true;
+ }
+ }
+
+
+ protected void createButtonsForButtonBar( Composite parent )
+ {
+ createButton( parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false );
+ createButton( parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false );
+ }
+
+
+ protected void okPressed()
+ {
+ // We create the new Array containing all the aliases
+ ArrayList<String> aliases = new ArrayList<String>();
+ for ( int i = 0; i < aliases_table.getItemCount(); i++ )
+ {
+ aliases.add( aliases_table.getItem( i ).getText() );
+ }
+ // Then we store it
+ this.aliasesList = aliases.toArray( new String[0] );
+
+ super.okPressed();
+ }
+
+
+ public String[] getAliasesList()
+ {
+ return aliasesList;
+ }
+
+
+ public boolean isDirty()
+ {
+ return this.dirty;
+ }
+}
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/Messages.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/Messages.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/Messages.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/Messages.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,51 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+
+public class Messages
+{
+ private static final String BUNDLE_NAME = "org.apache.directory.ldapstudio.schemas.view.editors.messages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME );
+
+
+ private Messages()
+ {
+ }
+
+
+ public static String getString( String key )
+ {
+ try
+ {
+ return RESOURCE_BUNDLE.getString( key );
+ }
+ catch ( MissingResourceException e )
+ {
+ return '!' + key + '!';
+ }
+ }
+}
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ObjectClassFormEditor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ObjectClassFormEditor.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ObjectClassFormEditor.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ObjectClassFormEditor.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,161 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import org.apache.directory.ldapstudio.schemas.controller.Application;
+import org.apache.directory.ldapstudio.schemas.model.ObjectClass;
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.forms.editor.FormEditor;
+
+
+/**
+ * This class is the ObjectClass Editor main class
+ */
+public class ObjectClassFormEditor extends FormEditor
+{
+ private static Logger logger = Logger.getLogger( ObjectClassFormEditor.class );
+ public static final String ID = Application.PLUGIN_ID + ".view.objectclassformeditor"; //$NON-NLS-1$
+ private ObjectClassFormEditorOverviewPage overview;
+ private ObjectClassFormEditorSourceCodePage sourceCode;
+ private boolean dirty = false;
+ private ObjectClass objectClass;
+
+
+ /**
+ * Default constructor
+ */
+ public ObjectClassFormEditor()
+ {
+ super();
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormEditor#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+ */
+ @Override
+ public void init( IEditorSite site, IEditorInput input ) throws PartInitException
+ {
+ setSite( site );
+ setInput( input );
+ setPartName( input.getName() );
+
+ objectClass = ( ( ObjectClassFormEditorInput ) getEditorInput() ).getObjectClass();
+ objectClass.setEditor( this );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormEditor#dispose()
+ */
+ @Override
+ public void dispose()
+ {
+ objectClass.removeEditor( this );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
+ */
+ @Override
+ protected void addPages()
+ {
+ try
+ {
+ overview = new ObjectClassFormEditorOverviewPage( this,
+ "overview", Messages.getString( "ObjectClassFormEditor.Overview" ) ); //$NON-NLS-1$ //$NON-NLS-2$
+ addPage( overview );
+ sourceCode = new ObjectClassFormEditorSourceCodePage( this,
+ "sourceCode", Messages.getString( "ObjectClassFormEditor.Source_Code" ) ); //$NON-NLS-1$ //$NON-NLS-2$
+ addPage( sourceCode );
+ }
+ catch ( PartInitException e )
+ {
+ logger.debug( "error when adding pages" ); //$NON-NLS-1$
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ public void doSave( IProgressMonitor monitor )
+ {
+ // Save is delegate to the page (that holds the object class itself)
+ overview.doSave( monitor );
+ // We reload the name in case of it has changed
+ setPartName( getEditorInput().getName() );
+ sourceCode.refresh();
+ if ( !monitor.isCanceled() )
+ {
+ setDirty( false );
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+ */
+ @Override
+ public void doSaveAs()
+ {
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+ */
+ @Override
+ public boolean isSaveAsAllowed()
+ {
+ return false;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormEditor#isDirty()
+ */
+ @Override
+ public boolean isDirty()
+ {
+ return this.dirty;
+ }
+
+
+ /**
+ * Sets the dirty state of the editor
+ *
+ * @param dirty
+ * the dirty state
+ */
+ public void setDirty( boolean dirty )
+ {
+ this.dirty = dirty;
+ editorDirtyStateChanged();
+ }
+}
Added: directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ObjectClassFormEditorInput.java
URL: http://svn.apache.org/viewvc/directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ObjectClassFormEditorInput.java?view=auto&rev=475786
==============================================================================
--- directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ObjectClassFormEditorInput.java (added)
+++ directory/sandbox/pamarcelot/ldapstudio/ldapstudio-schemas-plugin/src/main/java/org/apache/directory/ldapstudio/schemas/view/editors/ObjectClassFormEditorInput.java Thu Nov 16 08:05:20 2006
@@ -0,0 +1,128 @@
+/*
+ * 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.schemas.view.editors;
+
+
+import org.apache.directory.ldapstudio.schemas.model.ObjectClass;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+
+
+/**
+ * This class is the Input class for the Object Class Editor
+ */
+public class ObjectClassFormEditorInput implements IEditorInput
+{
+ private ObjectClass objectClass = null;
+
+
+ /**
+ * Default constructor
+ * @param obj
+ */
+ public ObjectClassFormEditorInput( ObjectClass obj )
+ {
+ super();
+ this.objectClass = obj;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#exists()
+ */
+ public boolean exists()
+ {
+ return ( this.objectClass == null );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+ */
+ public ImageDescriptor getImageDescriptor()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getName()
+ */
+ public String getName()
+ {
+ return this.objectClass.getNames()[0];
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getPersistable()
+ */
+ public IPersistableElement getPersistable()
+ {
+ return null;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IEditorInput#getToolTipText()
+ */
+ public String getToolTipText()
+ {
+ return this.objectClass.getNames()[0]
+ + Messages.getString( "ObjectClassFormEditorInput.In_the" ) + this.objectClass.getOriginatingSchema().getName() + Messages.getString( "ObjectClassFormEditorInput.Schema" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+ */
+ public Object getAdapter( Class adapter )
+ {
+ return null;
+ }
+
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals( Object obj )
+ {
+ if ( this == obj )
+ return true;
+ if ( !( obj instanceof ObjectClassFormEditorInput ) )
+ return false;
+ ObjectClassFormEditorInput other = ( ObjectClassFormEditorInput ) obj;
+ return other.getObjectClass().getOid().equals( this.objectClass.getOid() );
+ }
+
+
+ /**
+ * Returns the input object class
+ * @return the input object class
+ */
+ public ObjectClass getObjectClass()
+ {
+ return this.objectClass;
+ }
+
+}