/******************************************************************************* | |
* 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 org.eclipse.bpel.ui.commands.CompoundCommand; | |
import org.eclipse.bpel.ui.properties.BPELPropertySection; | |
import org.eclipse.core.resources.IMarker; | |
import org.eclipse.swt.widgets.Composite; | |
import org.eclipse.ui.forms.widgets.FormToolkit; | |
/** | |
* @author IBM Original Contribution. | |
* @author Michal Chmielewski (michal.chmielewski@oracle.com) | |
* @date Jul 16, 2007 | |
* | |
*/ | |
public interface IExpressionEditor { | |
/** | |
* Goto the text marker indicated. | |
* | |
* @param marker the marker | |
* @param codeType code type | |
* @param modelObject the model object | |
*/ | |
public void gotoTextMarker(IMarker marker, String codeType, Object modelObject); | |
/** | |
* Creates the editor widgets. | |
* @param parent the parent composite | |
* @param tk a {@link FormToolkit}, retrieved for example from the host {@link BPELPropertySection} | |
*/ | |
void createControls(Composite parent, FormToolkit tk); | |
/** | |
* Dispose of the editor. | |
*/ | |
void dispose(); | |
/** | |
* Notifies the editor that its controls are about to be hidden. | |
*/ | |
void aboutToBeHidden(); | |
/** | |
* Notifies the editor that its controls are about to be shown. | |
* Any widget state could be updated at this point. | |
*/ | |
void aboutToBeShown(); | |
/** | |
* This method is used just like IDetailsSection.getUserContext(). | |
* @return the user context | |
*/ | |
Object getUserContext(); | |
/** | |
* This method is used just like IDetailsSection.restoreUserContext(). | |
* @param userContext the user context | |
* | |
*/ | |
void restoreUserContext (Object userContext); | |
/** | |
* Return the editor content | |
* @return return the body of the edited expression | |
*/ | |
String getEditorContent (); | |
/** | |
* Set the editor content | |
* @param body the content of the editor. | |
*/ | |
void setEditorContent (String body); | |
/** | |
* Add a listener | |
* | |
* @param listener the listener to add. | |
*/ | |
void addListener(Listener listener); | |
/** | |
* Remove a listener. | |
* @param listener the listener to remove. | |
*/ | |
void removeListener(Listener listener); | |
/** | |
* The listener interface. | |
*/ | |
public static interface Listener { | |
/** | |
* Notify that we have changed. | |
*/ | |
public void notifyChanged(); | |
public void focusOut(); | |
public void focusIn(); | |
} | |
/** | |
* Allow the editor to modify | |
* @param compoundCommand | |
*/ | |
void addExtraStoreCommands(CompoundCommand compoundCommand); | |
/** | |
* Get the default body. | |
* @return the default body | |
*/ | |
public String getDefaultContent (); | |
/** | |
* Returns true if this editor supports this expression type. | |
* | |
* @param exprType the expression type. | |
* @return true if the expression type is supported. | |
*/ | |
boolean supportsExpressionType(String exprType); | |
/** | |
* Informs the editor of the expression type it will be editing. | |
* The supportsExpressionType() method will always be called first to make sure | |
* the editor actually supports this exprType combination. | |
* @param exprType the expression type | |
*/ | |
void setExpressionType ( String exprType ); | |
/** | |
* Informs the editor of the underlying model object in which this expression | |
* will be stored. The model object's type and relationship to other objects | |
* may depend on the expression type and context provided above (for example: the | |
* model for a transition condition is a Link, but the model for a join condition | |
* is an Activity). | |
* | |
* @param modelObject | |
*/ | |
void setModelObject (Object modelObject); | |
/** | |
* Tells the editor to consider itself clean. | |
*/ | |
void markAsClean(); | |
} |