/* * Licensed to "Neo Technology," Network Engine for Objects in Lund AB * (http://neotechnology.com) under one or more contributor license agreements. * See the NOTICE file distributed with this work for additional information * regarding copyright ownership. Neo Technology 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.neo4j.neoclipse; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.ICoolBarManager; import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.ToolBarContributionItem; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.search.ui.NewSearchUI; import org.eclipse.swt.SWT; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.application.ActionBarAdvisor; import org.eclipse.ui.application.IActionBarConfigurer; import org.eclipse.ui.application.IWorkbenchWindowConfigurer; import org.eclipse.ui.application.WorkbenchWindowAdvisor; import org.eclipse.ui.help.IWorkbenchHelpSystem; import org.neo4j.neoclipse.action.Actions; import org.neo4j.neoclipse.reltype.RelationshipTypeView; import org.neo4j.neoclipse.search.NeoSearchPage; /** * Configure the workbench window. * @author Anders Nawroth */ public class ApplicationWindowAdvisor extends WorkbenchWindowAdvisor { private ApplicationActionBarAdvisor actionBarAdvisor; public ApplicationWindowAdvisor( final IWorkbenchWindowConfigurer configurer ) { super( configurer ); } @Override public ActionBarAdvisor createActionBarAdvisor( final IActionBarConfigurer configurer ) { actionBarAdvisor = new ApplicationActionBarAdvisor( configurer ); return actionBarAdvisor; } @Override public void preWindowOpen() { IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); configurer.setShowCoolBar( true ); configurer.setShowMenuBar( false ); configurer.setShowStatusLine( true ); } @Override public void postWindowOpen() { super.postWindowOpen(); IWorkbenchWindowConfigurer configurer = getWindowConfigurer(); ICoolBarManager coolBar = configurer.getActionBarConfigurer() .getCoolBarManager(); coolBar.removeAll(); actionBarAdvisor.fillCoolBar( coolBar ); coolBar.update( true ); } private static class ApplicationActionBarAdvisor extends ActionBarAdvisor { private Action preferencesAction; private Action propertiesAction; private Action reltypesAction; private Action helpViewAction; private Action helpWindowAction; private Action searchAction; public ApplicationActionBarAdvisor( IActionBarConfigurer configurer ) { super( configurer ); } @Override protected void makeActions( final IWorkbenchWindow window ) { preferencesAction = new Action() { @Override public void run() { Activator.getDefault().showPreferenceDialog( false ); } }; Actions.PREFERENCES.initialize( preferencesAction ); propertiesAction = new Action() { @Override public void run() { try { PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage().showView( "org.eclipse.ui.views.PropertySheet" ); } catch ( PartInitException e ) { e.printStackTrace(); } } }; Actions.PROPERTIES.initialize( propertiesAction ); reltypesAction = new Action() { @Override public void run() { try { PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage().showView( RelationshipTypeView.ID ); } catch ( PartInitException e ) { e.printStackTrace(); } } }; Actions.RELTYPES_VIEW.initialize( reltypesAction ); searchAction = new Action() { @Override public void run() { NewSearchUI.openSearchDialog( window, NeoSearchPage.ID ); } }; Actions.SEARCH.initialize( searchAction ); helpViewAction = new Action() { @Override public void run() { try { final IWorkbenchHelpSystem helpSystem = PlatformUI .getWorkbench().getHelpSystem(); helpSystem.displayDynamicHelp(); } catch ( Throwable e ) { e.printStackTrace(); } } }; Actions.HELP_VIEW.initialize( helpViewAction ); helpWindowAction = new Action() { @Override public void run() { final IWorkbenchHelpSystem helpSystem = PlatformUI .getWorkbench().getHelpSystem(); helpSystem.displayHelp(); } }; Actions.HELP_WINDOW.initialize( helpWindowAction ); } @Override protected void fillCoolBar( final ICoolBarManager coolBar ) { IToolBarManager main = new ToolBarManager( SWT.FLAT | SWT.RIGHT ); main.add( preferencesAction ); coolBar.add( new ToolBarContributionItem( main, "main" ) ); IToolBarManager views = new ToolBarManager( SWT.FLAT | SWT.RIGHT ); views.add( propertiesAction ); views.add( reltypesAction ); views.add( searchAction ); views.add( helpViewAction ); views.add( helpWindowAction ); coolBar.add( new ToolBarContributionItem( views, "views" ) ); } } }