/**
* This file is part of Archiv-Editor.
*
* The software Archiv-Editor serves as a client user interface for working with
* the Person Data Repository. See: pdr.bbaw.de
*
* The software Archiv-Editor was developed at the Berlin-Brandenburg Academy
* of Sciences and Humanities, Jägerstr. 22/23, D-10117 Berlin.
* www.bbaw.de
*
* Copyright (C) 2010-2013 Berlin-Brandenburg Academy
* of Sciences and Humanities
*
* The software Archiv-Editor was developed by @author: Christoph Plutte.
*
* Archiv-Editor is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Archiv-Editor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Archiv-Editor.
* If not, see <http://www.gnu.org/licenses/lgpl-3.0.html>.
*/
package org.bbaw.pdr.ae.view.control.interfaces;
import org.bbaw.pdr.ae.model.Aspect;
import org.bbaw.pdr.ae.model.TaggingRange;
import org.eclipse.jface.resource.FontDescriptor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Listener;
/**
* The Interface IMarkupEditor.
* @author Christoph Plutte
*/
public interface IMarkupEditor
{
/**
* Adds the extended modify listener.
* @param listener the listener
*/
void addExtendedModifyListener(Listener listener);
/**
* Adds the focus listener.
* @param listener the listener
*/
void addFocusListener(Listener listener);
/**
* Adds the key listener.
* @param listener the listener
*/
void addKeyListener(Listener listener);
/**
* Adds the markup selection listener.
* @param listener the listener
*/
void addMarkupSelectionListener(Listener listener);
/**
* Adds the text selection listener.
* @param listener the listener
*/
void addTextSelectionListener(Listener listener);
/**
* Creates the editor.
*/
void createEditor();
/**
* Delete markup.
* @param taggingRange the tagging range
*/
void deleteMarkup(TaggingRange[] taggingRanges);
/**
* Gets the aspect.
* @return the aspect
*/
Aspect getAspect();
/**
* Gets the control.
* @return the control
*/
Control getControl();
/**
* Gets the selected markup.
* @return the selected markup
*/
TaggingRange[] getSelectedMarkups();
/**
* Gets the title.
* @return the title
*/
String getTitle();
/**
* Insert content set markup.
* @param taggingRange the tagging range
*/
void insertContentSetMarkup(TaggingRange taggingRange);
/**
* Checks if is valid.
* @return true, if is valid
*/
boolean isValid();
/**
* Sets the aspect.
* @param currentAspect the new aspect
*/
void setAspect(Aspect currentAspect);
/**
* Sets the composite.
* @param frontComposite the new composite
*/
void setComposite(Composite frontComposite);
/**
* Sets the editable.
* @param editable the new editable
*/
void setEditable(boolean editable);
/**
* Sets the font.
* @param fontDescriptor the new font
*/
void setFont(FontDescriptor fontDescriptor);
/**
* Sets the markup.
* @param taggingRange the new markup
*/
void setMarkup(TaggingRange taggingRange);
/**
* Sets the title.
* @param string the new title
*/
void setTitle(String string);
void refresh();
void saveChanges();
void insert(String string);
void setSelected(boolean selected);
void setFocus();
String getSelectionText();
}