1 20 21 package org.apache.directory.ldapstudio.schemas.controller.actions; 22 23 24 import org.apache.directory.ldapstudio.schemas.Messages; 25 import org.apache.directory.ldapstudio.schemas.PluginConstants; 26 import org.apache.directory.ldapstudio.schemas.model.SchemaElement; 27 import org.apache.directory.ldapstudio.schemas.model.SchemaPool; 28 import org.apache.directory.ldapstudio.schemas.view.editors.attributeType.AttributeTypeEditor; 29 import org.apache.directory.ldapstudio.schemas.view.editors.objectClass.ObjectClassEditor; 30 import org.apache.directory.ldapstudio.schemas.view.views.HierarchyView; 31 import org.apache.directory.ldapstudio.schemas.view.views.SchemaElementsView; 32 import org.apache.directory.ldapstudio.schemas.view.views.SchemasView; 33 import org.apache.directory.ldapstudio.schemas.view.views.wrappers.AttributeTypeWrapper; 34 import org.apache.directory.ldapstudio.schemas.view.views.wrappers.ObjectClassWrapper; 35 import org.eclipse.jface.action.Action; 36 import org.eclipse.jface.action.IAction; 37 import org.eclipse.jface.viewers.ISelection; 38 import org.eclipse.jface.viewers.StructuredSelection; 39 import org.eclipse.jface.viewers.TreeViewer; 40 import org.eclipse.ui.IWorkbenchPart; 41 import org.eclipse.ui.IWorkbenchWindow; 42 import org.eclipse.ui.IWorkbenchWindowActionDelegate; 43 import org.eclipse.ui.PlatformUI; 44 45 46 52 public class OpenTypeHierarchyAction extends Action implements IWorkbenchWindowActionDelegate 53 { 54 57 public OpenTypeHierarchyAction() 58 { 59 super( Messages.getString( "OpenTypeHierarchyAction.Open_Type_Hierarchy" ) ); setToolTipText( getText() ); 61 setId( PluginConstants.CMD_OPEN_TYPE_HIERARCHY ); 62 setActionDefinitionId( PluginConstants.CMD_OPEN_TYPE_HIERARCHY ); 63 setEnabled( true ); 64 } 65 66 67 70 public void run() 71 { 72 IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart(); 73 74 if ( part instanceof SchemasView ) 75 { 76 openTypeHierarchyFromTreeViewer( ( ( SchemasView ) part ).getViewer() ); 77 } 78 else if ( part instanceof SchemaElementsView ) 79 { 80 openTypeHierarchyFromTreeViewer( ( ( SchemaElementsView ) part ).getViewer() ); 81 } 82 else if ( part instanceof HierarchyView ) 83 { 84 openTypeHierarchyFromTreeViewer( ( ( HierarchyView ) part ).getViewer() ); 85 } 86 else if ( part instanceof AttributeTypeEditor ) 87 { 88 openTypeHierarchy( SchemaPool.getInstance().getAttributeType( part.getTitle() ) ); 89 } 90 else if ( part instanceof ObjectClassEditor ) 91 { 92 openTypeHierarchy( SchemaPool.getInstance().getObjectClass( part.getTitle() ) ); 93 } 94 } 95 96 97 103 private void openTypeHierarchyFromTreeViewer( TreeViewer treeViewer ) 104 { 105 Object firstElement = ( ( StructuredSelection ) treeViewer.getSelection() ).getFirstElement(); 106 107 if ( firstElement instanceof ObjectClassWrapper ) 108 { 109 ObjectClassWrapper ocw = ( ObjectClassWrapper ) firstElement; 110 openTypeHierarchy( ocw.getMyObjectClass() ); 111 } 112 else if ( firstElement instanceof AttributeTypeWrapper ) 113 { 114 AttributeTypeWrapper atw = ( AttributeTypeWrapper ) firstElement; 115 openTypeHierarchy( atw.getMyAttributeType() ); 116 } 117 } 118 119 120 126 private void openTypeHierarchy( SchemaElement element ) 127 { 128 HierarchyView view = ( HierarchyView ) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() 129 .findView( HierarchyView.ID ); 130 131 view.setInput( element ); 132 PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().bringToTop( view ); 133 } 134 135 136 139 public void dispose() 140 { 141 } 142 143 144 147 public void run( IAction action ) 148 { 149 } 150 151 152 155 public void selectionChanged( IAction action, ISelection selection ) 156 { 157 } 158 159 160 163 public void init( IWorkbenchWindow window ) 164 { 165 } 166 } 167 | Popular Tags |