/*******************************************************************************
* Copyright (c) 2009, 2012 SpringSource, a divison of VMware, Inc.
* Copyright (c) IBM Corporation (code cribbed from pde and navigator.)
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SpringSource, a division of VMware, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.virgo.ide.runtime.ui.views;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IActionBars;
import org.eclipse.virgo.ide.runtime.core.ServerCorePlugin;
import org.eclipse.virgo.ide.runtime.core.provisioning.IBundleRepositoryChangeListener;
import org.eclipse.virgo.ide.runtime.internal.ui.ServerUiPlugin;
import org.eclipse.virgo.ide.runtime.internal.ui.filters.FilterAction;
import org.eclipse.virgo.ide.runtime.internal.ui.projects.ServerProjectManager;
import org.eclipse.virgo.ide.runtime.internal.ui.repository.RefreshBundleJob;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IServer;
/**
*
* @see org.eclipse.pde.internal.ui.views.dependencies.DependenciesView
* @author Miles Parker
*
*/
@SuppressWarnings("restriction")
public class ArtefactCommonView extends CommonView {
private static final String FILTER_ACTION_GROUP = "filters";
private IBundleRepositoryChangeListener repositoryListener;
/**
* @see org.eclipse.ui.navigator.CommonNavigator#createPartControl(org.eclipse.swt.widgets.Composite)
*/
@Override
public void createPartControl(Composite aParent) {
super.createPartControl(aParent);
IActionBars actionBars = getViewSite().getActionBars();
IToolBarManager manager = actionBars.getToolBarManager();
manager.add(new Separator(FILTER_ACTION_GROUP));
FilterAction[] filterActions = FilterAction.createSet(this);
for (FilterAction action : filterActions) {
manager.appendToGroup(FILTER_ACTION_GROUP, action);
}
this.repositoryListener = new IBundleRepositoryChangeListener() {
public void bundleRepositoryChanged(IRuntime runtime) {
refreshView();
}
};
ServerCorePlugin.getArtefactRepositoryManager().addBundleRepositoryChangeListener(this.repositoryListener);
}
/**
* @see org.eclipse.virgo.ide.runtime.ui.views.CommonView#refreshAll()
*/
@Override
protected void refreshAll() {
for (IServer server : getServers()) {
RefreshBundleJob.execute(getSite().getShell(), server.getRuntime());
ServerProjectManager.getInstance().getProject(server).refresh();
}
super.refreshAll();
}
/**
* @see org.eclipse.virgo.ide.runtime.ui.views.CommonView#getListContentId()
*/
@Override
protected String getListContentId() {
return ServerUiPlugin.RUNTIME_FLATTENED_ARTEFACTS_CONTENT_ID;
}
/**
* @see org.eclipse.virgo.ide.runtime.ui.views.CommonView#getTreeContentId()
*/
@Override
protected String getTreeContentId() {
return ServerUiPlugin.RUNTIME_ARTEFACTS_CONTENT_ID;
}
/**
* @see org.eclipse.virgo.ide.runtime.ui.views.CommonView#getViewId()
*/
@Override
protected String getViewId() {
return ServerUiPlugin.ARTEFACTS_DETAIL_VIEW_ID;
}
}