/**
*
*/
package org.signalml.plugin.export.signal;
import java.awt.Color;
import java.awt.Stroke;
import javax.swing.KeyStroke;
/**
* This interface for a tag style allows to:
* <ul>
* <li>get the {@link ExportedSignalSelectionType type} of the selection</li>
* <li>get the name and description of this style</li>
* <li>get graphic style of this tag (fill and outline colour, outline width,
* dashing pattern of the outline)</li>
* <li>get the key associated with this style</li>
* <li>get the information if the tag is a marker</li>
* </ul>
* @author Marcin Szumski
*/
public interface ExportedTagStyle {
/**
* Returns the {@link ExportedSignalSelectionType type} of a
* {@link ExportedTag selection}.
* @return the type of a selection
*/
ExportedSignalSelectionType getType();
/**
* Returns the name of this style.
* @return the name of this style
*/
String getName();
/**
* Returns the description of this style.
* @return the description of this style
*/
String getDescription();
/**
* Returns the description of this style or, if it doesn't exist, the name
* @return the description of this style or, if it doesn't exist, the name
*/
String getDescriptionOrName();
/**
* Returns the colour of the fill of the {@link ExportedTag selection}.
* @return the colour of the fill of the selection
*/
Color getFillColor();
/**
* Returns the colour of the outline of the selection
* @return the colour of the outline of the selection
*/
Color getOutlineColor();
/**
* Returns the width of the outline.
* @return the width of the outline
*/
float getOutlineWidth();
/**
* Returns the array representing the dashing pattern for the outline.
* @return the array representing the dashing pattern for the outline
*/
float[] getOutlineDash();
/**
* Returns the stroke for the outline.
* @return the stroke for the outline
*/
Stroke getOutlineStroke();
/**
* Returns the key that will be used to start creation of a
* {@link ExportedTag selection} of this style.
* @return the key that will be used to start creation of a selection of
* this style
*/
KeyStroke getKeyStroke();
/**
* Returns if the {@link ExportedTag selection} is a marker.
* @return true if the selection is a marker, false otherwise
*/
boolean isMarker();
}