blob: fac5069736cf9cc95dcf9f7f7e22143d1ccf9c89 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2020 THALES GLOBAL SERVICES.
* 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:
* Thales - initial API and implementation
*******************************************************************************/
package org.eclipse.amalgam.explorer.activity.ui.api.editor.activities;
import org.eclipse.amalgam.explorer.activity.ui.ActivityExplorerActivator;
import org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.helper.FormHelper;
import org.eclipse.amalgam.explorer.activity.ui.api.editor.predicates.IPredicate;
import org.eclipse.amalgam.explorer.activity.ui.api.editor.sections.ActivityExplorerSection;
import org.eclipse.amalgam.explorer.activity.ui.internal.extension.point.manager.ActivityExplorerExtensionManager;
import org.eclipse.amalgam.explorer.activity.ui.internal.intf.IOrdered;
import org.eclipse.amalgam.explorer.activity.ui.internal.intf.IVisibility;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IPluginContribution;
import org.eclipse.ui.activities.WorkbenchActivityHelper;
import org.eclipse.ui.forms.events.IHyperlinkListener;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ImageHyperlink;
public class ExplorerActivity implements IVisibility, IOrdered, IPluginContribution {
public ExplorerActivity(IConfigurationElement element_p, ActivityExplorerSection section) {
name = ActivityExplorerExtensionManager.getName(element_p);
description = ActivityExplorerExtensionManager.getDescription(element_p);
index = Integer.parseInt(ActivityExplorerExtensionManager.getIndex(element_p));
listener = ActivityExplorerExtensionManager.getActivityAdapter(element_p);
image = ActivityExplorerExtensionManager.getImage(element_p);
id = ActivityExplorerExtensionManager.getId(element_p);
predicate = ActivityExplorerExtensionManager.getPredicate(element_p);
pluginId = element_p.getContributor().getName();
this.section = section;
}
public ExplorerActivity(String id, String name, IHyperlinkListener listener, IPredicate predicate, int index, ActivityExplorerSection section) {
super();
this.id = id;
this.name = name;
this.listener = listener;
this.predicate = predicate;
this.section = section;
setPosition(index);
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public IHyperlinkListener getListener() {
return listener;
}
private String pluginId;
private String id;
private String name;
private IHyperlinkListener listener;
private int index;
private Image image;
private String description;
private IPredicate predicate;
private ActivityExplorerSection section;
public Image getImage() {
return image;
}
public String getDescription() {
return description;
}
/**
* Return true this activity is visible.
*/
public boolean isVisible() {
boolean result = ActivityExplorerActivator.getDefault().getPreferenceStore().getBoolean(getId());
if (predicate != null) {
result &= predicate.isActivityOk(this);
}
result &= !WorkbenchActivityHelper.filterItem(this);
return result;
}
public IPredicate getPredicate() {
return predicate;
}
public int getPosition() {
return index;
}
public void setPosition(int index_p) {
this.index = index_p;
}
public Control init(Composite activityContainer_p, FormToolkit toolkit_p) {
widget = FormHelper.createLinkWithDescription(toolkit_p, activityContainer_p, image, name, null, description,
listener);
return widget;
}
ImageHyperlink widget;
public ImageHyperlink getWidget() {
return widget;
}
public void dispose() {
// dispose the section widget
if (widget != null && !widget.isDisposed())
widget.dispose();
}
public int compareTo(IOrdered arg0) {
return new Integer(getPosition()).compareTo(new Integer(arg0.getPosition()));
}
@Override
public String getLocalId() {
return id;
}
@Override
public String getPluginId() {
return pluginId;
}
public ActivityExplorerSection getSection() {
return section;
}
}