/* $Id: Plugin.java 124 2008-03-06 07:19:25Z bananeweizen $
* GNU GPL Version 2, Copyright (C) 2005 Paul C. Kunysch */
package de.kunysch.tvbrowser.quickscroll;
import javax.swing.JViewport;
import tvbrowser.ui.mainframe.MainFrame;
import de.kunysch.tvbrowser.PluginBase;
import devplugin.PluginInfo;
import devplugin.Version;
/** The TV-Browser application communicates with this class. */
public class Plugin extends PluginBase {
public static final String PROP_DIRECTION = "direction_enum"; //$NON-NLS-1$
public static final String PROP_HIDECURSOR = "hidecursor_boolean"; //$NON-NLS-1$
public static final String PROP_SPEEDUP = "speedup_int"; //$NON-NLS-1$
public static final int DIRECTION_VIEWPORT = 0;
public static final int DIRECTION_CONTENT = 1;
private Listener listener;
public Plugin() {
getSettings().setInt(PROP_DIRECTION, DIRECTION_CONTENT);
getSettings().setInt(PROP_SPEEDUP, 80);
getSettings().setBoolean(PROP_HIDECURSOR, true);
}
@Override
public PluginInfo getInfo() {
return new PluginInfo(
Messages.getString("Plugin.name"), Messages.getString("Plugin.desc"), Messages.getString("Plugin.author"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new Version(0, 3, false), Messages.getString("Plugin.license")); //$NON-NLS-1$
}
@Override
public String getMarkIconName() {
return "de/kunysch/tvbrowser/quickscroll/quickscroll.png"; //$NON-NLS-1$
}
@Override
public devplugin.SettingsTab getSettingsTab() {
return new SettingsTab(getSettings());
}
@Override
public void onActivation() {
try {
JViewport viewport = ((MainFrame) getParentFrame()).getProgramTableScrollPane().getViewport();
listener = new Listener(getSettings(), viewport, viewport.getComponent(0));
listener.onActivation();
} catch (NullPointerException e) {
delayActivation();
}
}
private void delayActivation() {
new Thread() {
@Override
public void run() {
try {
sleep(200);
onActivation();
} catch (InterruptedException e) {
}
}
}.start();
}
@Override
public void onDeactivation() {
listener.onDeactivation();
}
}