/******************************************************************************* | |
* Copyright (c) 2005, 2012 IBM Corporation 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: | |
* IBM Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.bpel.ui.expressions; | |
import java.util.ArrayList; | |
import java.util.List; | |
import org.eclipse.bpel.common.ui.composite.EditorInViewManager; | |
import org.eclipse.bpel.ui.BPELUIPlugin; | |
import org.eclipse.bpel.ui.IBPELUIConstants; | |
import org.eclipse.bpel.ui.commands.CompoundCommand; | |
import org.eclipse.core.runtime.CoreException; | |
import org.eclipse.swt.widgets.Composite; | |
import org.eclipse.ui.IEditorInput; | |
import org.eclipse.ui.IEditorPart; | |
import org.eclipse.ui.IViewPart; | |
import org.eclipse.ui.IWorkbench; | |
import org.eclipse.ui.IWorkbenchPage; | |
import org.eclipse.ui.PartInitException; | |
import org.eclipse.ui.PlatformUI; | |
import org.eclipse.ui.forms.widgets.FormToolkit; | |
/** | |
* @author IBM Original Contribution. | |
* @author Michal Chmielewski (michal.chmielewski@oracle.com) | |
* @date Jul 16, 2007 | |
* | |
*/ | |
public abstract class AbstractExpressionEditor implements IExpressionEditor { | |
protected List<Listener> listeners = new ArrayList<Listener>(); | |
protected EditorInViewManager fManager; | |
/** The underlying model object */ | |
private Object fModelObject; | |
/** a {@link FormToolkit} to use */ | |
protected FormToolkit wf; | |
/** The expression type */ | |
private String fExprType ; | |
/** | |
* @see org.eclipse.bpel.ui.expressions.IExpressionEditor#createControls(org.eclipse.swt.widgets.Composite, | |
* org.eclipse.bpel.ui.properties.BPELPropertySection) | |
*/ | |
public void createControls(Composite parent, FormToolkit toolkit) { | |
this.wf = toolkit; | |
} | |
/** | |
* @see org.eclipse.bpel.ui.expressions.IExpressionEditor#addListener(org.eclipse.bpel.ui.expressions.IExpressionEditor.Listener) | |
*/ | |
public void addListener(Listener listener) { | |
listeners.add(listener); | |
} | |
/** | |
* @see org.eclipse.bpel.ui.expressions.IExpressionEditor#removeListener(org.eclipse.bpel.ui.expressions.IExpressionEditor.Listener) | |
*/ | |
public void removeListener(Listener listener) { | |
listeners.remove(listener); | |
} | |
protected void notifyChanged() { | |
for (Listener next : listeners) { | |
next.notifyChanged(); | |
} | |
} | |
protected void notifyFocusOut() { | |
for (Listener next : listeners) { | |
next.focusOut(); | |
} | |
} | |
/** | |
* @see org.eclipse.bpel.ui.expressions.IExpressionEditor#getEditorContent() | |
* | |
* | |
*/ | |
public abstract String getEditorContent() ; | |
/** | |
* @see org.eclipse.bpel.ui.expressions.IExpressionEditor#setEditorContent(java.lang.String) | |
*/ | |
public abstract void setEditorContent (String body) ; | |
protected void refresh() { | |
} | |
/** | |
* @see org.eclipse.bpel.ui.expressions.IExpressionEditor#addExtraStoreCommands(org.eclipse.gef.commands.CompoundCommand) | |
*/ | |
public void addExtraStoreCommands(CompoundCommand compoundCommand) { | |
// Default is to do nothing. | |
} | |
protected IEditorPart createEditor(String editorID, IEditorInput input, | |
Composite parent) { | |
try { | |
return getEditorManager().createEditor(editorID, input, parent); | |
} catch (CoreException e) { | |
BPELUIPlugin.log(e); | |
} | |
return null; | |
} | |
protected EditorInViewManager getEditorManager() { | |
if (fManager == null) { | |
IWorkbench workbench = PlatformUI.getWorkbench(); | |
IWorkbenchPage page = workbench.getActiveWorkbenchWindow() | |
.getActivePage(); | |
IViewPart view = page.findView(IBPELUIConstants.PROPERTY_VIEW_ID); | |
try { | |
if (view == null) { | |
view = page.showView(IBPELUIConstants.PROPERTY_VIEW_ID); | |
} | |
fManager = new EditorInViewManager(view.getViewSite()); | |
} catch (PartInitException e) { | |
BPELUIPlugin.log(e); | |
} | |
} | |
return fManager; | |
} | |
/** | |
* @see org.eclipse.bpel.ui.expressions.IExpressionEditor#setExpressionType(java.lang.String) | |
*/ | |
public void setExpressionType (String exprType ) { | |
this.fExprType = exprType; | |
} | |
/** | |
* @see org.eclipse.bpel.ui.expressions.IExpressionEditor#setModelObject(java.lang.Object) | |
*/ | |
public void setModelObject(Object modelObject) { | |
this.fModelObject = modelObject; | |
} | |
protected String getExprType() { | |
return fExprType; | |
} | |
protected Object getModelObject() { | |
return fModelObject; | |
} | |
} |