/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Pentaho : http://www.pentaho.com
*
*******************************************************************************
*
* Licensed 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.pentaho.di.ui.repo;
import org.eclipse.swt.widgets.ToolBar;
import org.pentaho.di.ui.spoon.Spoon;
import org.pentaho.di.ui.spoon.SpoonLifecycleListener;
import org.pentaho.di.ui.spoon.SpoonPerspective;
import org.pentaho.di.ui.spoon.SpoonPluginCategories;
import org.pentaho.di.ui.spoon.SpoonPluginInterface;
import org.pentaho.ui.xul.XulDomContainer;
import org.pentaho.ui.xul.XulException;
import org.pentaho.ui.xul.containers.XulToolbar;
@org.pentaho.di.ui.spoon.SpoonPlugin( id = "repositories-plugin", image = "" )
@SpoonPluginCategories( { "spoon" } )
public class RepositorySpoonPlugin implements SpoonPluginInterface {
private static final String SPOON_CATEGORY = "spoon";
private RepositoryConnectController repositoryConnectController;
public RepositorySpoonPlugin( RepositoryConnectController repositoryConnectController ) {
this.repositoryConnectController = repositoryConnectController;
}
@Override
public void applyToContainer( String category, XulDomContainer container ) throws XulException {
if ( category.equals( SPOON_CATEGORY ) ) {
XulToolbar toolbar = (XulToolbar) container.getDocumentRoot().getElementById( "main-toolbar" );
RepositoryConnectMenu repoConnectMenu =
new RepositoryConnectMenu( Spoon.getInstance(), (ToolBar) toolbar.getManagedObject(),
repositoryConnectController );
repoConnectMenu.render();
}
}
@Override
public SpoonLifecycleListener getLifecycleListener() {
return new SpoonLifecycleListener() {
@Override
public void onEvent( SpoonLifeCycleEvent evt ) {
switch ( evt ) {
case REPOSITORY_DISCONNECTED:
repositoryConnectController.fireListeners();
break;
default:
}
}
};
}
@Override
public SpoonPerspective getPerspective() {
// no perspective
return null;
}
// destroy-method in blueprint xml
public void removeFromContainer() throws XulException {
// create removal code
}
}