001: /* uDig - User Friendly Desktop Internet GIS client
002: * http://udig.refractions.net
003: * (C) 2004, Refractions Research Inc.
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation;
008: * version 2.1 of the License.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: */
015: package net.refractions.udig.project;
016:
017: /**
018: * An event that indicates a change to the map. See the Enum for more information of the types of events taht
019: * are raised.
020: *
021: * @author Jesse
022: * @see MapEventType
023: * @since 1.1.0
024: */
025: public class MapEvent extends UDIGEvent {
026:
027: public static enum MapEventType {
028: /**
029: * Type indicating the containing project of the map has changed.
030: */
031: PROJECT,
032: /**
033: * Type indicating the name of the map has changed.
034: */
035: NAME,
036: /**
037: * Type indicating the abstract of the map has changed.
038: */
039: ABSTRACT,
040: /**
041: * Type indicating a NavCommand has been executed.
042: */
043: NAV_COMMAND,
044: /**
045: * Type indicating a MapCommand has been executed.
046: */
047: MAP_COMMAND,
048: /**
049: * Type indicating the LayerFactory of the map has changed.
050: */
051: LAYER_FACTORY,
052: /**
053: * Type indicating the ViewportModel of the map has changed.
054: */
055: VIEWPORT_MODEL,
056: /**
057: * Type indicating the EditManager of the map has changed.
058: */
059: EDIT_MANAGER,
060: /**
061: * Type indicating the RenderManager of the map has changed.
062: */
063: RENDER_MANAGER,
064: /**
065: * Type indicating the Colour Palette used by the map has changed.
066: */
067: COLOR_PALETTE,
068: /**
069: * Type indicating the Colour Scheme used by the map has changed.
070: */
071: COLOUR_SCHEME,
072: }
073:
074: private final MapEventType type;
075:
076: /**
077: * Construct <code>EditManagerEvent</code>.
078: *
079: * @param source the object that raised the event.
080: * @param type the type of event this object represents.
081: * @param newValue the new value, if this applies.
082: * @param oldValue the old value, if this applies.
083: */
084: public MapEvent(IMap source, MapEventType type, Object newValue,
085: Object oldValue) {
086: super (source, newValue, oldValue);
087: this .type = type;
088: }
089:
090: /**
091: * Gets the type of the event.
092: *
093: * @return the type of the event.
094: * @see MapEventType
095: */
096: public MapEventType getType() {
097: return type;
098: }
099:
100: @Override
101: public String toString() {
102: return getSource().getName()
103: + " eventType=" + type + " old=" + oldValue + " new=" + newValue; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
104: }
105:
106: @Override
107: public IMap getSource() {
108: return (IMap) source;
109: }
110: }
|