/* Copyright (C) 2006 Christian Schneider
*
* This file is part of Nomad.
*
* Nomad is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Nomad is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Nomad; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* Created on Nov 30, 2006
*/
package net.sf.nmedit.jpatch.event;
import net.sf.nmedit.jpatch.PModule;
/**
* Event sent by a {@link PModule module}.
*
* @author Christian Schneider
*/
public class PModuleEvent extends PPatchEvent
{
/**
*
*/
private static final long serialVersionUID = 7313259477979546246L;
private String oldName;
protected PModuleEvent( Object target, long when, int id, int x, int y, int key,
int modifiers, Object arg )
{
super( target, when, id, x, y, key, modifiers, arg );
}
protected PModuleEvent( Object target, long when, int id, int x, int y, int key,
int modifiers )
{
super( target, when, id, x, y, key, modifiers );
}
protected PModuleEvent( Object target, int id, Object arg )
{
super( target, id, arg );
}
public PModuleEvent(PModule module)
{
super(module, 0, null);
}
/**
* Returns the module that was changed.
* @return the module that was changed
*/
public PModule getModule()
{
return (PModule) target;
}
/**
* Returns the previous name of the module.
* @return the previous name of the module.
* @throws UnsupportedOperationException if the event id is not {@link PPatchEvent#MODULE_RENAMED}
*/
public String getOldName()
{
if (getId() != MODULE_RENAMED)
throw new UnsupportedOperationException("undefined property");
return oldName;
}
/**
* Sets the event id to {@link PPatchEvent#MODULE_RENAMED} and
* the previous module name.
*
* @param oldName the previous module name
*/
public void moduleRenamed(String oldName)
{
this.id = MODULE_RENAMED;
this.oldName = oldName;
}
/**
* Sets the event id to {@link PPatchEvent#MODULE_REMOVED} and
* the previous screen location property.
*
* @param oldScreenX the previous x-coordinate (screen)
* @param oldScreenY the previous y-coordinate (screen)
*/
public void moduleMoved(int oldScreenX, int oldScreenY)
{
this.id = MODULE_MOVED;
this.x = oldScreenX;
this.y = oldScreenY;
}
/**
* Returns the x-coordinate of the previous screen location
* @return x-coordinate of the previous screen location
* @throws UnsupportedOperationException if the event id is not {@link PPatchEvent#MODULE_MOVED}
*/
public int getOldScreenX()
{
if (getId() != MODULE_MOVED)
throw new UnsupportedOperationException("undefined property");
return x;
}
/**
* Returns the y-coordinate of the previous screen location
* @return y-coordinate of the previous screen location
* @throws UnsupportedOperationException if the event id is not {@link PPatchEvent#MODULE_MOVED}
*/
public int getOldScreenY()
{
if (getId() != MODULE_MOVED)
throw new UnsupportedOperationException("undefined property");
return y;
}
}