Package adams.gui.tools.previewbrowser
Class CocoAnnotationsHandler
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.gui.tools.previewbrowser.AbstractContentHandler
-
- adams.gui.tools.previewbrowser.CocoAnnotationsHandler
-
- All Implemented Interfaces:
Destroyable,GlobalInfoSupporter,LoggingLevelHandler,LoggingSupporter,OptionHandler,SizeOfHandler,ContentHandler,Serializable
public class CocoAnnotationsHandler extends AbstractContentHandler
Displays the following image types with an overlay for the objects stored in the COCO JSON files: jpg,tif,tiff,bmp,gif,png,jpeg,wbmp
Loads all JSON files in either the directory of the image or the alternative location.
-logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel) The logging level for outputting errors and debugging output. default: WARNING
-color <java.awt.Color> (property: color) The color to use for the objects. default: #ff0000
-use-colors-per-type <boolean> (property: useColorsPerType) If enabled, individual colors per type are used. default: true
-type-color-provider <adams.gui.visualization.core.ColorProvider> (property: typeColorProvider) The color provider to use for the various types. default: adams.gui.visualization.core.DefaultColorProvider
-type-regexp <adams.core.base.BaseRegExp> (property: typeRegExp) The regular expression that the types must match in order to get drawn ( eg only plotting a subset). default: .* more: https://docs.oracle.com/javase/tutorial/essential/regex/ https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
-label-format <java.lang.String> (property: labelFormat) The label format string to use for the rectangles; '#' for index, '@' for type and '$' for short type (type suffix must be defined for '@' and '$' ); for instance: '# @'. default: $
-label-font <java.awt.Font> (property: labelFont) The font to use for the labels. default: Display-PLAIN-14
-finder <adams.data.objectfinder.ObjectFinder> (property: finder) The object finder to use. default: adams.data.objectfinder.AllFinder
-use-alternative-location <boolean> (property: useAlternativeLocation) If enabled, the alternative location is used to locate the associated report rather than the directory with the image. default: false
-alternative-location <adams.core.io.PlaceholderDirectory> (property: alternativeLocation) The alternative location to use look for associated reports. default: ${CWD}- Author:
- FracPete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classCocoAnnotationsHandler.CombinedPanelThe panel for displaying the image.
-
Field Summary
Fields Modifier and Type Field Description protected PlaceholderDirectorym_AlternativeLocationthe alternative location.protected Colorm_Colorthe color for the objects.protected ObjectFinderm_Finderthe object finder to use.protected Fontm_LabelFontthe label font.protected Stringm_LabelFormatthe label for the rectangles.protected ColorProviderm_TypeColorProviderthe color provider to use.protected BaseRegExpm_TypeRegExpthe regular expression for the types to draw.protected booleanm_UseAlternativeLocationwhether to use an alternative location for the reports.protected booleanm_UseColorsPerTypewhether to use colors per type.-
Fields inherited from class adams.gui.tools.previewbrowser.AbstractContentHandler
m_Relation
-
Fields inherited from class adams.core.option.AbstractOptionHandler
m_OptionManager
-
Fields inherited from class adams.core.logging.LoggingObject
m_Logger, m_LoggingIsEnabled, m_LoggingLevel
-
Fields inherited from interface adams.gui.tools.previewbrowser.ContentHandler
MATCH_ALL
-
-
Constructor Summary
Constructors Constructor Description CocoAnnotationsHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringalternativeLocationTipText()Returns the tip text for this property.StringcolorTipText()Returns the tip text for this property.PreviewPanelcreatePreview(File file)Creates the actual view.voiddefineOptions()Adds options to the internal list of options.protected FiledetermineBaseFile(CocoAnnotationsHandler.CombinedPanel panel, File file)Determines the basefile, either current location or alternative one.protected ReportfilterReport(Report report)Filters the objects in the report, if necessary.StringfinderTipText()Returns the tip text for this property.PlaceholderDirectorygetAlternativeLocation()Returns the alternative location to use for the reports.ColorgetColor()Returns the color to use for the objects.String[]getExtensions()Returns the list of extensions (without dot) that this handler can take care of.ObjectFindergetFinder()Returns the finder to use for locating the objects.FontgetLabelFont()Returns the label font.StringgetLabelFormat()Returns the label format.ColorProvidergetTypeColorProvider()Returns the color provider to use for the types.BaseRegExpgetTypeRegExp()Returns the regular expression that the types must match in order to get drawn.booleangetUseAlternativeLocation()Returns whether to use an alternative location for the reports.booleangetUseColorsPerType()Returns whether to use colors per type.StringglobalInfo()Returns a string describing the object.StringlabelFontTipText()Returns the tip text for this property.StringlabelFormatTipText()Returns the tip text for this property.protected ReportloadFromJson(CocoAnnotationsHandler.CombinedPanel panel, File file)Loads the report associated with the image file.protected File[]locateJsonFiles(CocoAnnotationsHandler.CombinedPanel panel, File file)Locates all JSON files in relation to the file.protected voidrefreshReportsIfNecessary(CocoAnnotationsHandler.CombinedPanel panel, File file)Refreshes the report cache if necessary.PreviewPanelreusePreview(File file, PreviewPanel previewPanel)Reuses the last preview, if possible.voidsetAlternativeLocation(PlaceholderDirectory value)Sets the alternative location to use for the reports.voidsetColor(Color value)Sets the color to use for the objects.voidsetFinder(ObjectFinder value)Sets the finder to use for locating the objects.voidsetLabelFont(Font value)Sets the label font.voidsetLabelFormat(String value)Sets the label format.voidsetTypeColorProvider(ColorProvider value)Sets the color provider to use for the types.voidsetTypeRegExp(BaseRegExp value)Sets the regular expression that the types must match in order to get drawn.voidsetUseAlternativeLocation(boolean value)Sets whether to use an alternative location for the reports.voidsetUseColorsPerType(boolean value)Sets whether to use colors per type.StringtypeColorProviderTipText()Returns the tip text for this property.StringtypeRegExpTipText()Returns the tip text for this property.StringuseAlternativeLocationTipText()Returns the tip text for this property.StringuseColorsPerTypeTipText()Returns the tip text for this property.-
Methods inherited from class adams.gui.tools.previewbrowser.AbstractContentHandler
checkFile, getHandlers, getHandlersForFile, getHandlersForFile, getPreview, getRelation, hasHandler, hasHandler
-
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, destroy, finishInit, getDefaultLoggingLevel, getOptionManager, initialize, loggingLevelTipText, newOptionManager, reset, setLoggingLevel, toCommandLine, toString
-
Methods inherited from class adams.core.logging.LoggingObject
configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.core.Destroyable
destroy
-
Methods inherited from interface adams.core.logging.LoggingLevelHandler
getLoggingLevel
-
Methods inherited from interface adams.core.option.OptionHandler
cleanUpOptions, getOptionManager, toCommandLine
-
-
-
-
Field Detail
-
m_Color
protected Color m_Color
the color for the objects.
-
m_UseColorsPerType
protected boolean m_UseColorsPerType
whether to use colors per type.
-
m_TypeColorProvider
protected ColorProvider m_TypeColorProvider
the color provider to use.
-
m_TypeRegExp
protected BaseRegExp m_TypeRegExp
the regular expression for the types to draw.
-
m_LabelFormat
protected String m_LabelFormat
the label for the rectangles.
-
m_LabelFont
protected Font m_LabelFont
the label font.
-
m_Finder
protected ObjectFinder m_Finder
the object finder to use.
-
m_UseAlternativeLocation
protected boolean m_UseAlternativeLocation
whether to use an alternative location for the reports.
-
m_AlternativeLocation
protected PlaceholderDirectory m_AlternativeLocation
the alternative location.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceGlobalInfoSupporter- Specified by:
globalInfoin classAbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceOptionHandler- Overrides:
defineOptionsin classAbstractOptionHandler
-
setColor
public void setColor(Color value)
Sets the color to use for the objects.- Parameters:
value- the color
-
getColor
public Color getColor()
Returns the color to use for the objects.- Returns:
- the color
-
colorTipText
public String colorTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUseColorsPerType
public void setUseColorsPerType(boolean value)
Sets whether to use colors per type.- Parameters:
value- true if to use colors per type
-
getUseColorsPerType
public boolean getUseColorsPerType()
Returns whether to use colors per type.- Returns:
- true if to use colors per type
-
useColorsPerTypeTipText
public String useColorsPerTypeTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setTypeColorProvider
public void setTypeColorProvider(ColorProvider value)
Sets the color provider to use for the types.- Parameters:
value- the provider
-
getTypeColorProvider
public ColorProvider getTypeColorProvider()
Returns the color provider to use for the types.- Returns:
- the provider
-
typeColorProviderTipText
public String typeColorProviderTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setTypeRegExp
public void setTypeRegExp(BaseRegExp value)
Sets the regular expression that the types must match in order to get drawn.- Parameters:
value- the expression
-
getTypeRegExp
public BaseRegExp getTypeRegExp()
Returns the regular expression that the types must match in order to get drawn.- Returns:
- the expression
-
typeRegExpTipText
public String typeRegExpTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setLabelFormat
public void setLabelFormat(String value)
Sets the label format.- Parameters:
value- the label format
-
getLabelFormat
public String getLabelFormat()
Returns the label format.- Returns:
- the label format
-
labelFormatTipText
public String labelFormatTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setLabelFont
public void setLabelFont(Font value)
Sets the label font.- Parameters:
value- the label font
-
getLabelFont
public Font getLabelFont()
Returns the label font.- Returns:
- the label font
-
labelFontTipText
public String labelFontTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setFinder
public void setFinder(ObjectFinder value)
Sets the finder to use for locating the objects.- Parameters:
value- the finder
-
getFinder
public ObjectFinder getFinder()
Returns the finder to use for locating the objects.- Returns:
- the finder
-
finderTipText
public String finderTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUseAlternativeLocation
public void setUseAlternativeLocation(boolean value)
Sets whether to use an alternative location for the reports.- Parameters:
value- true if to use
-
getUseAlternativeLocation
public boolean getUseAlternativeLocation()
Returns whether to use an alternative location for the reports.- Returns:
- true if to use
-
useAlternativeLocationTipText
public String useAlternativeLocationTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setAlternativeLocation
public void setAlternativeLocation(PlaceholderDirectory value)
Sets the alternative location to use for the reports.- Parameters:
value- the location
-
getAlternativeLocation
public PlaceholderDirectory getAlternativeLocation()
Returns the alternative location to use for the reports.- Returns:
- the location
-
alternativeLocationTipText
public String alternativeLocationTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
getExtensions
public String[] getExtensions()
Returns the list of extensions (without dot) that this handler can take care of.- Returns:
- the list of extensions (no dot)
-
determineBaseFile
protected File determineBaseFile(CocoAnnotationsHandler.CombinedPanel panel, File file)
Determines the basefile, either current location or alternative one.- Parameters:
panel- the context panelfile- the current image- Returns:
- the (potentially) update path
-
locateJsonFiles
protected File[] locateJsonFiles(CocoAnnotationsHandler.CombinedPanel panel, File file)
Locates all JSON files in relation to the file.- Parameters:
panel- the context panelfile- the current image to view
-
refreshReportsIfNecessary
protected void refreshReportsIfNecessary(CocoAnnotationsHandler.CombinedPanel panel, File file)
Refreshes the report cache if necessary.- Parameters:
panel- the context panelfile- the current image to view
-
filterReport
protected Report filterReport(Report report)
Filters the objects in the report, if necessary.- Parameters:
report- the report to filter- Returns:
- the filtered report (copy, in case filtering occurred)
-
loadFromJson
protected Report loadFromJson(CocoAnnotationsHandler.CombinedPanel panel, File file)
Loads the report associated with the image file.- Parameters:
panel- the context panelfile- the image file- Returns:
- the report, null if not present or failed to load
-
createPreview
public PreviewPanel createPreview(File file)
Creates the actual view.- Specified by:
createPreviewin interfaceContentHandler- Specified by:
createPreviewin classAbstractContentHandler- Parameters:
file- the file to create the view for- Returns:
- the view
-
reusePreview
public PreviewPanel reusePreview(File file, PreviewPanel previewPanel)
Reuses the last preview, if possible.- Specified by:
reusePreviewin interfaceContentHandler- Overrides:
reusePreviewin classAbstractContentHandler- Parameters:
file- the file to create the view for- Returns:
- the view
-
-