/*
This file is part of JFLICKS.
JFLICKS 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 3 of the License, or
(at your option) any later version.
JFLICKS 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 JFLICKS. If not, see <http://www.gnu.org/licenses/>.
*/
package org.jflicks.rc;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
/**
* This base class implements some RC functionality that extensions can
* take advantage.
*
* @author Doug Barnum
* @version 1.0
*/
public abstract class BaseRC implements RC {
private String title;
private boolean mouseControl;
private boolean keyboardControl;
private boolean eventControl;
private PropertyChangeSupport propertyChangeSupport;
private int upKeyEvent;
private int downKeyEvent;
private int leftKeyEvent;
private int rightKeyEvent;
private int enterKeyEvent;
private int escapeKeyEvent;
private int infoKeyEvent;
private int maximizeKeyEvent;
private int pauseKeyEvent;
private int pageUpKeyEvent;
private int pageDownKeyEvent;
private int rewindKeyEvent;
private int forwardKeyEvent;
private int skipBackwardKeyEvent;
private int skipForwardKeyEvent;
private int sapKeyEvent;
private int audiosyncPlusKeyEvent;
private int audiosyncMinusKeyEvent;
private int guideKeyEvent;
/**
* Simple constructor.
*/
public BaseRC() {
setPropertyChangeSupport(new PropertyChangeSupport(this));
setUpKeyEvent(getDefaultUpKeyEvent());
setDownKeyEvent(getDefaultDownKeyEvent());
setLeftKeyEvent(getDefaultLeftKeyEvent());
setRightKeyEvent(getDefaultRightKeyEvent());
setEnterKeyEvent(getDefaultEnterKeyEvent());
setEscapeKeyEvent(getDefaultEscapeKeyEvent());
setInfoKeyEvent(getDefaultInfoKeyEvent());
setMaximizeKeyEvent(getDefaultMaximizeKeyEvent());
setPauseKeyEvent(getDefaultPauseKeyEvent());
setPageUpKeyEvent(getDefaultPageUpKeyEvent());
setPageDownKeyEvent(getDefaultPageDownKeyEvent());
setRewindKeyEvent(getDefaultRewindKeyEvent());
setForwardKeyEvent(getDefaultForwardKeyEvent());
setSkipBackwardKeyEvent(getDefaultSkipBackwardKeyEvent());
setSkipForwardKeyEvent(getDefaultSkipForwardKeyEvent());
setSapKeyEvent(getDefaultSapKeyEvent());
setAudiosyncPlusKeyEvent(getDefaultAudiosyncPlusKeyEvent());
setAudiosyncMinusKeyEvent(getDefaultAudiosyncMinusKeyEvent());
setGuideKeyEvent(getDefaultGuideKeyEvent());
}
/**
* {@inheritDoc}
*/
public String getTitle() {
return (title);
}
/**
* Convenience method to set the title property.
*
* @param s A given String.
*/
public void setTitle(String s) {
String old = title;
title = s;
firePropertyChange("Title", old, title);
}
/**
* {@inheritDoc}
*/
public boolean isMouseControl() {
return (mouseControl);
}
/**
* {@inheritDoc}
*/
public void setMouseControl(boolean b) {
boolean old = mouseControl;
mouseControl = b;
firePropertyChange("MouseControl", old, mouseControl);
}
/**
* {@inheritDoc}
*/
public boolean isKeyboardControl() {
return (keyboardControl);
}
/**
* {@inheritDoc}
*/
public void setKeyboardControl(boolean b) {
boolean old = keyboardControl;
keyboardControl = b;
firePropertyChange("KeyboardControl", old, keyboardControl);
}
/**
* {@inheritDoc}
*/
public boolean isEventControl() {
return (eventControl);
}
/**
* {@inheritDoc}
*/
public void setEventControl(boolean b) {
boolean old = eventControl;
eventControl = b;
firePropertyChange("EventControl", old, eventControl);
}
/**
* {@inheritDoc}
*/
public int getDefaultUpKeyEvent() {
return (KeyEvent.VK_UP);
}
/**
* {@inheritDoc}
*/
public int getDefaultDownKeyEvent() {
return (KeyEvent.VK_DOWN);
}
/**
* {@inheritDoc}
*/
public int getDefaultLeftKeyEvent() {
return (KeyEvent.VK_LEFT);
}
/**
* {@inheritDoc}
*/
public int getDefaultRightKeyEvent() {
return (KeyEvent.VK_RIGHT);
}
/**
* {@inheritDoc}
*/
public int getDefaultEnterKeyEvent() {
return (KeyEvent.VK_ENTER);
}
/**
* {@inheritDoc}
*/
public int getDefaultEscapeKeyEvent() {
return (KeyEvent.VK_ESCAPE);
}
/**
* {@inheritDoc}
*/
public int getDefaultInfoKeyEvent() {
return (KeyEvent.VK_I);
}
/**
* {@inheritDoc}
*/
public int getDefaultMaximizeKeyEvent() {
return (KeyEvent.VK_F);
}
/**
* {@inheritDoc}
*/
public int getDefaultPauseKeyEvent() {
return (KeyEvent.VK_P);
}
/**
* {@inheritDoc}
*/
public int getDefaultPageUpKeyEvent() {
return (KeyEvent.VK_PAGE_UP);
}
/**
* {@inheritDoc}
*/
public int getDefaultPageDownKeyEvent() {
return (KeyEvent.VK_PAGE_DOWN);
}
/**
* {@inheritDoc}
*/
public int getDefaultRewindKeyEvent() {
return (KeyEvent.VK_R);
}
/**
* {@inheritDoc}
*/
public int getDefaultForwardKeyEvent() {
return (KeyEvent.VK_X);
}
/**
* {@inheritDoc}
*/
public int getDefaultSkipBackwardKeyEvent() {
return (KeyEvent.VK_Z);
}
/**
* {@inheritDoc}
*/
public int getDefaultSkipForwardKeyEvent() {
return (KeyEvent.VK_X);
}
/**
* {@inheritDoc}
*/
public int getDefaultSapKeyEvent() {
return (KeyEvent.VK_S);
}
/**
* {@inheritDoc}
*/
public int getDefaultAudiosyncPlusKeyEvent() {
return (KeyEvent.VK_PLUS);
}
/**
* {@inheritDoc}
*/
public int getDefaultAudiosyncMinusKeyEvent() {
return (KeyEvent.VK_MINUS);
}
/**
* {@inheritDoc}
*/
public int getDefaultGuideKeyEvent() {
return (KeyEvent.VK_G);
}
/**
* {@inheritDoc}
*/
public int getUpKeyEvent() {
return (upKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getDownKeyEvent() {
return (downKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getLeftKeyEvent() {
return (leftKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getRightKeyEvent() {
return (rightKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getEnterKeyEvent() {
return (enterKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getEscapeKeyEvent() {
return (escapeKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getInfoKeyEvent() {
return (infoKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getMaximizeKeyEvent() {
return (maximizeKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getPauseKeyEvent() {
return (pauseKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getPageUpKeyEvent() {
return (pageUpKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getPageDownKeyEvent() {
return (pageDownKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getRewindKeyEvent() {
return (rewindKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getForwardKeyEvent() {
return (forwardKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getSkipBackwardKeyEvent() {
return (skipBackwardKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getSkipForwardKeyEvent() {
return (skipForwardKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getSapKeyEvent() {
return (sapKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getAudiosyncPlusKeyEvent() {
return (audiosyncPlusKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getAudiosyncMinusKeyEvent() {
return (audiosyncMinusKeyEvent);
}
/**
* {@inheritDoc}
*/
public int getGuideKeyEvent() {
return (guideKeyEvent);
}
/**
* {@inheritDoc}
*/
public void setUpKeyEvent(int i) {
upKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setDownKeyEvent(int i) {
downKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setLeftKeyEvent(int i) {
leftKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setRightKeyEvent(int i) {
rightKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setEnterKeyEvent(int i) {
enterKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setEscapeKeyEvent(int i) {
escapeKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setInfoKeyEvent(int i) {
infoKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setMaximizeKeyEvent(int i) {
maximizeKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setPauseKeyEvent(int i) {
pauseKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setPageUpKeyEvent(int i) {
pageUpKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setPageDownKeyEvent(int i) {
pageDownKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setRewindKeyEvent(int i) {
rewindKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setForwardKeyEvent(int i) {
forwardKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setSkipBackwardKeyEvent(int i) {
skipBackwardKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setSkipForwardKeyEvent(int i) {
skipForwardKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setSapKeyEvent(int i) {
sapKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setAudiosyncPlusKeyEvent(int i) {
audiosyncPlusKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setAudiosyncMinusKeyEvent(int i) {
audiosyncMinusKeyEvent = i;
}
/**
* {@inheritDoc}
*/
public void setGuideKeyEvent(int i) {
guideKeyEvent = i;
}
private PropertyChangeSupport getPropertyChangeSupport() {
return (propertyChangeSupport);
}
private void setPropertyChangeSupport(PropertyChangeSupport pcs) {
propertyChangeSupport = pcs;
}
/**
* {@inheritDoc}
*/
public void addPropertyChangeListener(PropertyChangeListener l) {
PropertyChangeSupport pcs = getPropertyChangeSupport();
if (pcs != null) {
pcs.addPropertyChangeListener(l);
}
}
/**
* {@inheritDoc}
*/
public void addPropertyChangeListener(String name,
PropertyChangeListener l) {
PropertyChangeSupport pcs = getPropertyChangeSupport();
if (pcs != null) {
pcs.addPropertyChangeListener(name, l);
}
}
/**
* {@inheritDoc}
*/
public void removePropertyChangeListener(PropertyChangeListener l) {
PropertyChangeSupport pcs = getPropertyChangeSupport();
if (pcs != null) {
pcs.removePropertyChangeListener(l);
}
}
protected void firePropertyChange(String s, Object oldValue,
Object newValue) {
PropertyChangeSupport pcs = getPropertyChangeSupport();
if ((pcs != null) && (s != null)) {
pcs.firePropertyChange(s, oldValue, newValue);
}
}
protected void firePropertyChange(String s, boolean oldValue,
boolean newValue) {
PropertyChangeSupport pcs = getPropertyChangeSupport();
if ((pcs != null) && (s != null)) {
pcs.firePropertyChange(s, oldValue, newValue);
}
}
}