KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > directory > ldapstudio > ldifeditor > editor > actions > OpenBestValueEditorAction


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.ldifeditor.editor.actions;
22
23
24 import org.apache.directory.ldapstudio.browser.core.model.IConnection;
25 import org.apache.directory.ldapstudio.ldifeditor.editor.LdifEditor;
26 import org.apache.directory.ldapstudio.valueeditors.AbstractDialogValueEditor;
27 import org.apache.directory.ldapstudio.valueeditors.IValueEditor;
28
29
30 public class OpenBestValueEditorAction extends AbstractOpenValueEditorAction
31 {
32
33     public OpenBestValueEditorAction( LdifEditor editor )
34     {
35         super( editor );
36     }
37
38
39     public void update()
40     {
41
42         super.setEnabled( isEditableLineSelected() );
43
44         // determine value editor
45
IConnection connection = getConnection();
46         String JavaDoc attributeDescription = getAttributeDescription();
47         Object JavaDoc oldValue = getValue();
48
49         if ( attributeDescription != null )
50         {
51             valueEditor = valueEditorManager.getCurrentValueEditor( connection.getSchema(), attributeDescription );
52             Object JavaDoc rawValue = valueEditor.getRawValue( connection, oldValue );
53             if ( !( valueEditor instanceof AbstractDialogValueEditor ) || rawValue == null )
54             {
55                 IValueEditor[] vps = valueEditorManager.getAlternativeValueEditors( connection.getSchema(), attributeDescription );
56                 for ( int i = 0; i < vps.length
57                     && ( !( valueEditor instanceof AbstractDialogValueEditor ) || rawValue == null ); i++ )
58                 {
59                     valueEditor = vps[i];
60                     rawValue = valueEditor.getRawValue( connection, oldValue );
61                 }
62             }
63         }
64
65         if ( valueEditor != null )
66         {
67             setText( valueEditor.getValueEditorName() );
68             setImageDescriptor( valueEditor.getValueEditorImageDescriptor() );
69         }
70     }
71
72 }
73
Popular Tags