/*****************************************************************************
* Copyright (c) 2008 CEA LIST.
*
*
* 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:
* Remi Schnekenburger (CEA LIST) Remi.Schnekenburger@cea.fr - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.papyrus.extensionpoints.editors.configuration;
import org.eclipse.jface.dialogs.IInputValidator;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
/**
* Interface that should be implemented by direct editors for Papyrus.
*/
public interface IDirectEditorConfiguration {
/**
* Returns the style for the source viewer widget
*
* @return the style for the source viewer widget
* @see SWT
*/
// @unused
public int getStyle();
/**
* Returns the preferred size for the dialog window
*
* @return the preferred size for the dialog window
*/
// @unused
public Point getPreferedSize();
/**
* Returns the source viewer configuration for the editor
*
* @return the source viewer configuration for the editor
*/
public SourceViewerConfiguration getSourceViewerConfiguration();
/**
* Returns the text to edit
*
* @return the text to edit
*/
public String getTextToEdit(Object editedObject);
/**
* Action executed before opening editor dialog window
*
* @return the result of this action
*/
public Object preEditAction(Object editedObject);
/**
* Action executed before closing editor dialog window
*
* @param newText
* the text to save
* @return the result of this action
*/
public Object postEditAction(Object editedObject, String newText);
/**
* Returns the extended Area for the dialog window
*
* @param parent
* the parent of the returned composite
* @return the extended Area for the dialog window or <code>null</code> if no extension is
* required
*/
public Composite createExtendedDialogArea(Composite parent);
/**
* Returns the language of the edited body
*
* @return the language of the edited body
*/
public String getLanguage();
/**
* Sets the language of the edited body
*
* @param language
* the language of the edited body
*/
public void setLanguage(String language);
/**
* Returns the input validator, ie indicates if the text is correct
*/
public IInputValidator getInputValidator();
/**
* Sets the input validator, ie the element that indicates if the text is correct
*/
// @unused
public void setInputValidator(IInputValidator validator);
/**
* Get the text selection for the viewer
*
* @param value
*
* @return a selection
*/
public Selection getTextSelection(String value, Object editedObject);
/**
* Class that represents an area for text selection
*/
public static class Selection {
private final int lentgh;
private final int start;
public Selection(int start, int lentgh) {
this.start = start;
this.lentgh = lentgh;
}
public int getLentgh() {
return lentgh;
}
public int getStart() {
return start;
}
}
}