KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > directory > ldapstudio > browser > common > widgets > entryeditor > OpenBestEditorAction


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  *
19  */

20
21 package org.apache.directory.ldapstudio.browser.common.widgets.entryeditor;
22
23
24 import org.apache.directory.ldapstudio.valueeditors.IValueEditor;
25 import org.apache.directory.ldapstudio.valueeditors.ValueEditorManager;
26 import org.eclipse.jface.resource.ImageDescriptor;
27 import org.eclipse.jface.viewers.TreeViewer;
28
29
30 /**
31  *
32  * The OpenBestEditorAction is used to edit a value with the best value editor.
33  *
34  * @author <a HREF="mailto:dev@directory.apache.org">Apache Directory Project</a>
35  * @version $Rev$, $Date$
36  */

37 public class OpenBestEditorAction extends AbstractOpenEditorAction
38 {
39
40     /** The best value editor. */
41     private IValueEditor bestValueEditor;
42
43
44     /**
45      * Creates a new instance of OpenBestEditorAction.
46      *
47      * @param viewer the viewer
48      * @param actionGroup the action group
49      * @param valueEditorManager the value editor manager
50      */

51     public OpenBestEditorAction( TreeViewer viewer, EntryEditorWidgetActionGroup actionGroup,
52         ValueEditorManager valueEditorManager )
53     {
54         super( viewer, actionGroup, valueEditorManager );
55     }
56
57
58     /**
59      * Gets the best value editor.
60      *
61      * @return the best value editor
62      */

63     public IValueEditor getBestValueEditor()
64     {
65         return this.bestValueEditor;
66     }
67
68
69     /**
70      * {@inheritDoc}
71      */

72     public void dispose()
73     {
74         bestValueEditor = null;
75         super.dispose();
76     }
77
78
79     /**
80      * {@inheritDoc}
81      */

82     @Override JavaDoc
83     public String JavaDoc getCommandId()
84     {
85         return null;
86     }
87
88
89     /**
90      * {@inheritDoc}
91      */

92     @Override JavaDoc
93     public ImageDescriptor getImageDescriptor()
94     {
95         return isEnabled() ? bestValueEditor.getValueEditorImageDescriptor() : null;
96     }
97
98
99     /**
100      * {@inheritDoc}
101      */

102     @Override JavaDoc
103     public String JavaDoc getText()
104     {
105         return isEnabled() ? bestValueEditor.getValueEditorName() : null;
106     }
107
108
109     /**
110      * {@inheritDoc}
111      */

112     @Override JavaDoc
113     public boolean isEnabled()
114     {
115         if ( getSelectedValues().length == 1
116             && getSelectedAttributes().length == 0
117             && viewer.getCellModifier().canModify( getSelectedValues()[0],
118                 EntryEditorWidgetTableMetadata.VALUE_COLUMN_NAME ) )
119         {
120             // update value editor
121
bestValueEditor = valueEditorManager.getCurrentValueEditor( getSelectedValues()[0] );
122             super.cellEditor = bestValueEditor.getCellEditor();
123
124             return true;
125         }
126         else
127         {
128             return false;
129         }
130     }
131
132 }
133
Popular Tags