diff options
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/categories/Category.java')
-rw-r--r-- | target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/categories/Category.java | 418 |
1 files changed, 209 insertions, 209 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/categories/Category.java b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/categories/Category.java index 4961e5da1..740b50410 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/categories/Category.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.views/src/org/eclipse/tcf/te/ui/views/categories/Category.java @@ -1,209 +1,209 @@ -/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.ui.views.categories;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.tcf.te.runtime.extensions.ExecutableExtension;
-import org.eclipse.tcf.te.runtime.interfaces.IDisposable;
-import org.eclipse.tcf.te.ui.views.Managers;
-import org.eclipse.tcf.te.ui.views.activator.UIPlugin;
-import org.eclipse.tcf.te.ui.views.interfaces.ICategory;
-import org.eclipse.tcf.te.ui.views.interfaces.categories.ICategorizable;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Default category implementation.
- */
-public class Category extends ExecutableExtension implements ICategory, IDisposable, IPersistableElement {
- // The category image / image descriptor
- private ImageDescriptor descriptor = null;
- private Image image = null;
- // The sorting rank
- private int rank = -1;
- // The converted expression
- private Expression expression;
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.extensions.ExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
- */
- @Override
- public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
- super.setInitializationData(config, propertyName, data);
-
- // Read the icon attribute and create the image
- String attrIcon = config.getAttribute("icon");//$NON-NLS-1$
- if (attrIcon != null) {
- descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(config.getNamespaceIdentifier(), attrIcon);
- if (descriptor != null) {
- image = JFaceResources.getResources().createImageWithDefault(descriptor);
- }
- }
-
- // Read the rank attribute
- String attrRank = config.getAttribute("rank"); //$NON-NLS-1$
- if (attrRank != null) {
- try {
- rank = Integer.valueOf(attrRank).intValue();
- } catch (NumberFormatException e) { /* ignored on purpose */ }
- }
-
- // Read the "enablement" sub element of the extension
- IConfigurationElement[] children = config.getChildren("enablement"); //$NON-NLS-1$
- // Only one "enablement" element is expected
- if (children != null && children.length > 0) {
- expression = ExpressionConverter.getDefault().perform(children[0]);
- }
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class)
- */
- @Override
- public Object getAdapter(Class adapter) {
- if(adapter == IPersistableElement.class) {
- return this;
- }
- return super.getAdapter(adapter);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
- */
- @Override
- public void saveState(IMemento memento) {
- memento.putString("id", this.getId()); //$NON-NLS-1$
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.IPersistableElement#getFactoryId()
- */
- @Override
- public String getFactoryId() {
- return "org.eclipse.tcf.te.ui.views.categoryFactory"; //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.interfaces.IDisposable#dispose()
- */
- @Override
- public void dispose() {
- if (descriptor != null) {
- JFaceResources.getResources().destroyImage(descriptor);
- descriptor = null;
- }
- image = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#getImage()
- */
- @Override
- public Image getImage() {
- return image;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#getChildren()
- */
- @Override
- public Object[] getChildren() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#getRank()
- */
- @Override
- public int getRank() {
- return rank;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#belongsTo(java.lang.Object)
- */
- @Override
- public boolean belongsTo(Object element) {
- ICategorizable categorizable = null;
- if (element instanceof IAdaptable) {
- categorizable = (ICategorizable)((IAdaptable)element).getAdapter(ICategorizable.class);
- }
- if (categorizable == null) {
- categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(element, ICategorizable.class);
- }
- return categorizable != null ? Managers.getCategoryManager().belongsTo(getId(), categorizable.getId()) : false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#isEnabled()
- */
- @Override
- public boolean isEnabled() {
- // The category is enabled if no "enablement" expression is found
- boolean enabled = true;
-
- if (expression != null) {
- // Get the handler service
- IHandlerService handlerSvc = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
- Assert.isNotNull(handlerSvc);
-
- // Get the current state
- IEvaluationContext currentState = handlerSvc.getCurrentState();
-
- // Construct the evaluation context to pass to the expression
- // The expressions default variable is the category itself.
- IEvaluationContext ctx = new EvaluationContext(currentState, this);
- try {
- enabled = expression.evaluate(ctx).equals(EvaluationResult.TRUE);
- } catch (CoreException e) {
- IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), e.getLocalizedMessage(), e);
- UIPlugin.getDefault().getLog().log(status);
- }
- }
-
- return enabled;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- StringBuffer buffer = new StringBuffer(getLabel());
- buffer.append(" ["); //$NON-NLS-1$
- buffer.append(getId());
- buffer.append("] {rank="); //$NON-NLS-1$
- buffer.append(getRank());
- buffer.append(", enabled="); //$NON-NLS-1$
- buffer.append(isEnabled());
- buffer.append("}"); //$NON-NLS-1$
- return buffer.toString();
- }
-}
+/******************************************************************************* + * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. 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: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tcf.te.ui.views.categories; + +import org.eclipse.core.expressions.EvaluationContext; +import org.eclipse.core.expressions.EvaluationResult; +import org.eclipse.core.expressions.Expression; +import org.eclipse.core.expressions.ExpressionConverter; +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.JFaceResources; +import org.eclipse.swt.graphics.Image; +import org.eclipse.tcf.te.runtime.extensions.ExecutableExtension; +import org.eclipse.tcf.te.runtime.interfaces.IDisposable; +import org.eclipse.tcf.te.ui.views.Managers; +import org.eclipse.tcf.te.ui.views.activator.UIPlugin; +import org.eclipse.tcf.te.ui.views.interfaces.ICategory; +import org.eclipse.tcf.te.ui.views.interfaces.categories.ICategorizable; +import org.eclipse.ui.IMemento; +import org.eclipse.ui.IPersistableElement; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.handlers.IHandlerService; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +/** + * Default category implementation. + */ +public class Category extends ExecutableExtension implements ICategory, IDisposable, IPersistableElement { + // The category image / image descriptor + private ImageDescriptor descriptor = null; + private Image image = null; + // The sorting rank + private int rank = -1; + // The converted expression + private Expression expression; + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.extensions.ExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object) + */ + @Override + public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException { + super.setInitializationData(config, propertyName, data); + + // Read the icon attribute and create the image + String attrIcon = config.getAttribute("icon");//$NON-NLS-1$ + if (attrIcon != null) { + descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(config.getNamespaceIdentifier(), attrIcon); + if (descriptor != null) { + image = JFaceResources.getResources().createImageWithDefault(descriptor); + } + } + + // Read the rank attribute + String attrRank = config.getAttribute("rank"); //$NON-NLS-1$ + if (attrRank != null) { + try { + rank = Integer.valueOf(attrRank).intValue(); + } catch (NumberFormatException e) { /* ignored on purpose */ } + } + + // Read the "enablement" sub element of the extension + IConfigurationElement[] children = config.getChildren("enablement"); //$NON-NLS-1$ + // Only one "enablement" element is expected + if (children != null && children.length > 0) { + expression = ExpressionConverter.getDefault().perform(children[0]); + } + } + + /* + * (non-Javadoc) + * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class) + */ + @Override + public Object getAdapter(Class adapter) { + if(adapter == IPersistableElement.class) { + return this; + } + return super.getAdapter(adapter); + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento) + */ + @Override + public void saveState(IMemento memento) { + memento.putString("id", this.getId()); //$NON-NLS-1$ + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPersistableElement#getFactoryId() + */ + @Override + public String getFactoryId() { + return "org.eclipse.tcf.te.ui.views.categoryFactory"; //$NON-NLS-1$ + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.runtime.interfaces.IDisposable#dispose() + */ + @Override + public void dispose() { + if (descriptor != null) { + JFaceResources.getResources().destroyImage(descriptor); + descriptor = null; + } + image = null; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#getImage() + */ + @Override + public Image getImage() { + return image; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#getChildren() + */ + @Override + public Object[] getChildren() { + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#getRank() + */ + @Override + public int getRank() { + return rank; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#belongsTo(java.lang.Object) + */ + @Override + public boolean belongsTo(Object element) { + ICategorizable categorizable = null; + if (element instanceof IAdaptable) { + categorizable = (ICategorizable)((IAdaptable)element).getAdapter(ICategorizable.class); + } + if (categorizable == null) { + categorizable = (ICategorizable)Platform.getAdapterManager().getAdapter(element, ICategorizable.class); + } + return categorizable != null ? Managers.getCategoryManager().belongsTo(getId(), categorizable.getId()) : false; + } + + /* (non-Javadoc) + * @see org.eclipse.tcf.te.ui.views.interfaces.ICategory#isEnabled() + */ + @Override + public boolean isEnabled() { + // The category is enabled if no "enablement" expression is found + boolean enabled = true; + + if (expression != null) { + // Get the handler service + IHandlerService handlerSvc = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class); + Assert.isNotNull(handlerSvc); + + // Get the current state + IEvaluationContext currentState = handlerSvc.getCurrentState(); + + // Construct the evaluation context to pass to the expression + // The expressions default variable is the category itself. + IEvaluationContext ctx = new EvaluationContext(currentState, this); + try { + enabled = expression.evaluate(ctx).equals(EvaluationResult.TRUE); + } catch (CoreException e) { + IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(), e.getLocalizedMessage(), e); + UIPlugin.getDefault().getLog().log(status); + } + } + + return enabled; + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + StringBuffer buffer = new StringBuffer(getLabel()); + buffer.append(" ["); //$NON-NLS-1$ + buffer.append(getId()); + buffer.append("] {rank="); //$NON-NLS-1$ + buffer.append(getRank()); + buffer.append(", enabled="); //$NON-NLS-1$ + buffer.append(isEnabled()); + buffer.append("}"); //$NON-NLS-1$ + return buffer.toString(); + } +} |