/*******************************************************************************
* Copyright (c) 2003, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.gef.rulers;
/**
* <code>RulerChangeListener</code>s can be added to <code>RulerProvider</code>s to
* receive notification about changes in the ruler/guide properties. This interface
* provides a mechanism for the (client-side) ruler/guide model to communicate changes
* to GEF's ruler/guide feature.
*
* @see org.eclipse.gef.rulers.RulerProvider
*
* @author Pratik Shah
* @since 3.0
*/
public interface RulerChangeListener {
/**
* Invoked when the ruler's unit of measurement is changed.
* @param newUnit The new unit of measurement (RulerProvider.UNIT_INCES,
* UNIT_CENTIMETERS, or UNIT_PIXELS)
*/
void notifyUnitsChanged(int newUnit);
/**
* Invoked when a guide is added to or removed from a ruler.
* @param guide The guide that was added or removed
*/
void notifyGuideReparented(Object guide);
/**
* Invoked when a guide is moved.
* @param guide The guide that was moved
*/
void notifyGuideMoved(Object guide);
/**
* Invoked when a graphical component is attached to a guide.
* @param part The model representation of the graphical compoment that was attached
* @param guide The guide that the part was attached to
*/
void notifyPartAttachmentChanged(Object part, Object guide);
/**
* Stub for the RulerChangeListener interface. Clients not intending to implement
* all the methods in that interface can extend this class.
*
* @author Pratik Shah
* @since 3.0
*/
public class Stub implements RulerChangeListener {
/**
* @see RulerChangeListener#notifyUnitsChanged(int)
*/
public void notifyUnitsChanged(int newUnit) {
}
/**
* @see RulerChangeListener#notifyGuideReparented(Object)
*/
public void notifyGuideReparented(Object guide) {
}
/**
* @see RulerChangeListener#notifyGuideMoved(Object)
*/
public void notifyGuideMoved(Object guide) {
}
/**
* @see RulerChangeListener#notifyPartAttachmentChanged(Object, Object)
*/
public void notifyPartAttachmentChanged(Object part, Object guide) {
}
}
}