com.vividsolutions.jump.workbench.model
Class Layer

java.lang.Object
  extended bycom.vividsolutions.jump.workbench.model.AbstractLayerable
      extended bycom.vividsolutions.jump.workbench.model.Layer
All Implemented Interfaces:
Layerable, LayerManagerProxy
Direct Known Subclasses:
SystemLayerFinder.NonSavePromptingLayer

public class Layer
extends AbstractLayerable
implements LayerManagerProxy

Adds colour, line-width, and other stylistic information to a Feature Collection.

When adding or removing multiple features to this Layer's FeatureCollection, prefer #addAll and #removeAll to #add and #remove -- fewer events will be fired.


Field Summary
static java.lang.String FIRING_APPEARANCE_CHANGED_ON_ATTRIBUTE_CHANGE
           
 
Constructor Summary
Layer()
          Called by Java2XML
Layer(java.lang.String name, java.awt.Color fillColor, FeatureCollection featureCollection, LayerManager layerManager)
           
 
Method Summary
 void addStyle(Style style)
           
static UndoableCommand addUndo(java.lang.String layerName, LayerManagerProxy proxy, UndoableCommand wrappeeCommand)
          Enables a layer to be changed undoably.
 java.util.Collection cloneStyles()
           
static java.awt.Color defaultLineColor(java.awt.Color fillColor)
           
 void dispose()
          Releases references to the data, to facilitate garbage collection.
 BasicStyle getBasicStyle()
           
 Blackboard getBlackboard()
           
 DataSourceQuery getDataSourceQuery()
           
 java.lang.String getDescription()
           
 FeatureCollectionWrapper getFeatureCollectionWrapper()
          Returns a wrapper around the FeatureCollection which was added using #wrapFeatureCollection.
 LabelStyle getLabelStyle()
           
 Style getStyle(java.lang.Class c)
          Styles do not notify the Layer when their parameters change.
 java.util.List getStyles()
           
 VertexStyle getVertexStyle()
           
 boolean hasReadableDataSource()
           
 boolean isDrawingLast()
           
 boolean isEditable()
           
 boolean isFeatureCollectionModified()
           
 boolean isReadonly()
           
 boolean isSelectable()
           
 boolean isSynchronizingLineColor()
           
 void removeStyle(Style p)
           
 Layer setDataSourceQuery(DataSourceQuery dataSourceQuery)
           
 void setDescription(java.lang.String description)
           
 void setDrawingLast(boolean drawingLast)
          Used for lightweight layers like the Vector layer.
 void setEditable(boolean editable)
          Editability is not enforced; all parties are responsible for heeding this flag.
 void setFeatureCollection(FeatureCollection featureCollection)
           
 Layer setFeatureCollectionModified(boolean featureCollectionModified)
           
protected  void setFeatureCollectionWrapper(FeatureCollectionWrapper featureCollectionWrapper)
           
 void setLayerManager(LayerManager layerManager)
          Called by Java2XML
 void setReadonly(boolean value)
           
 void setSelectable(boolean value)
          Set whether or not features in this layer can be selected.
 void setStyles(java.util.Collection newStyles)
           
 void setSynchronizingLineColor(boolean synchronizingLineColor)
           
static void tryToInvalidateEnvelope(Layer layer)
          Does nothing if the underlying feature collection is not a FeatureDataset.
 
Methods inherited from class com.vividsolutions.jump.workbench.model.AbstractLayerable
fireAppearanceChanged, fireLayerChanged, getLayerManager, getMaxScale, getMinScale, getName, isScaleDependentRenderingEnabled, isVisible, setMaxScale, setMinScale, setName, setScaleDependentRenderingEnabled, setVisible, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.vividsolutions.jump.workbench.model.LayerManagerProxy
getLayerManager
 

Field Detail

FIRING_APPEARANCE_CHANGED_ON_ATTRIBUTE_CHANGE

public static final java.lang.String FIRING_APPEARANCE_CHANGED_ON_ATTRIBUTE_CHANGE
Constructor Detail

Layer

public Layer()
Called by Java2XML


Layer

public Layer(java.lang.String name,
             java.awt.Color fillColor,
             FeatureCollection featureCollection,
             LayerManager layerManager)
Method Detail

defaultLineColor

public static java.awt.Color defaultLineColor(java.awt.Color fillColor)
Returns:
a darker version of the given fill colour, for use as the line colour

setDescription

public void setDescription(java.lang.String description)

isReadonly

public boolean isReadonly()
Returns:
true if this layer should always be 'readonly' I.e.: The layer should never have the editable field set to true.

setReadonly

public void setReadonly(boolean value)

isSelectable

public boolean isSelectable()
Returns:
true if features in this layer can be selected.

setSelectable

public void setSelectable(boolean value)
Set whether or not features in this layer can be selected.

Parameters:
value - true if features in this layer can be selected

setDrawingLast

public void setDrawingLast(boolean drawingLast)
Used for lightweight layers like the Vector layer.

Parameters:
drawingLast - true if the layer should be among those drawn last

setFeatureCollection

public void setFeatureCollection(FeatureCollection featureCollection)

setEditable

public void setEditable(boolean editable)
Editability is not enforced; all parties are responsible for heeding this flag.


isEditable

public boolean isEditable()

setSynchronizingLineColor

public void setSynchronizingLineColor(boolean synchronizingLineColor)

getBasicStyle

public BasicStyle getBasicStyle()

getVertexStyle

public VertexStyle getVertexStyle()

getLabelStyle

public LabelStyle getLabelStyle()

getDescription

public java.lang.String getDescription()

getFeatureCollectionWrapper

public FeatureCollectionWrapper getFeatureCollectionWrapper()
Returns a wrapper around the FeatureCollection which was added using #wrapFeatureCollection. The original FeatureCollection can be retrieved using FeatureCollectionWrapper#getWrappee. However, parties are encouraged to use the FeatureCollectionWrapper instead, so that feature additions and removals cause FeatureEvents to be fired (by the Layer).


setFeatureCollectionWrapper

protected void setFeatureCollectionWrapper(FeatureCollectionWrapper featureCollectionWrapper)

getStyle

public Style getStyle(java.lang.Class c)
Styles do not notify the Layer when their parameters change. Therefore, after you modify a Style's parameters (for example, the fill colour of BasicStyle), be sure to call #fireAppearanceChanged

Parameters:
c - Can even be the desired Style's superclass or interface
Returns:
The style value

getStyles

public java.util.List getStyles()

hasReadableDataSource

public boolean hasReadableDataSource()

isDrawingLast

public boolean isDrawingLast()

isSynchronizingLineColor

public boolean isSynchronizingLineColor()

addStyle

public void addStyle(Style style)

dispose

public void dispose()
Releases references to the data, to facilitate garbage collection. Important for MDI apps like the JUMP Workbench. Called when the last JInternalFrame viewing the LayerManager is closed (i.e. internal frame's responsibility). To conserve memory, if layers are frequently added and removed from the LayerManager, parties may want to call #dispose themselves rather than waiting for the internal frame to be closed.


removeStyle

public void removeStyle(Style p)

cloneStyles

public java.util.Collection cloneStyles()

setStyles

public void setStyles(java.util.Collection newStyles)

setLayerManager

public void setLayerManager(LayerManager layerManager)
Description copied from interface: Layerable
Called by Java2XML

Specified by:
setLayerManager in interface Layerable
Overrides:
setLayerManager in class AbstractLayerable

getBlackboard

public Blackboard getBlackboard()
Specified by:
getBlackboard in interface Layerable

addUndo

public static UndoableCommand addUndo(java.lang.String layerName,
                                      LayerManagerProxy proxy,
                                      UndoableCommand wrappeeCommand)
Enables a layer to be changed undoably. Since the layer's features are saved, only use this method for layers with few features.


tryToInvalidateEnvelope

public static void tryToInvalidateEnvelope(Layer layer)
Does nothing if the underlying feature collection is not a FeatureDataset.


getDataSourceQuery

public DataSourceQuery getDataSourceQuery()

setDataSourceQuery

public Layer setDataSourceQuery(DataSourceQuery dataSourceQuery)

isFeatureCollectionModified

public boolean isFeatureCollectionModified()

setFeatureCollectionModified

public Layer setFeatureCollectionModified(boolean featureCollectionModified)