sleep(Plugin.SINGLE_CLICK_WAITING_TIME);
mPerformingSingleClick = true;
int row = mProgramTable.rowAtPoint(e.getPoint());
mProgramTable.changeSelection(row, 0, false, false);
Program p = (Program) mProgramTableModel.getValueAt(row, 1);
devplugin.Plugin.getPluginManager().handleProgramSingleClick(p, CapturePlugin.getInstance());
mPerformingSingleClick = false;
} catch (InterruptedException e) { // ignore
}
}
};
mLeftSingleClickThread.setPriority(Thread.MIN_PRIORITY);
mLeftSingleClickThread.start();
}
else if (SwingUtilities.isLeftMouseButton(e) && (e.getClickCount() == 2) && e.getModifiersEx() == 0) {
if(!mPerformingSingleClick && mLeftSingleClickThread != null && mLeftSingleClickThread.isAlive()) {
mLeftSingleClickThread.interrupt();
}
if(!mPerformingSingleClick) {
int row = mProgramTable.rowAtPoint(e.getPoint());
mProgramTable.changeSelection(row, 0, false, false);
Program p = (Program) mProgramTableModel.getValueAt(row, 1);
devplugin.Plugin.getPluginManager().handleProgramDoubleClick(p, CapturePlugin.getInstance());
}
}
else if (SwingUtilities.isMiddleMouseButton(e) && (e.getClickCount() == 1)) {
mMiddleSingleClickThread = new Thread("Single middle click") {
public void run() {
try {
mPerformingSingleMiddleClick = false;
sleep(Plugin.SINGLE_CLICK_WAITING_TIME);
mPerformingSingleMiddleClick = true;
int row = mProgramTable.rowAtPoint(e.getPoint());
mProgramTable.changeSelection(row, 0, false, false);
Program p = (Program) mProgramTableModel.getValueAt(row, 1);
devplugin.Plugin.getPluginManager().handleProgramMiddleClick(p, CapturePlugin.getInstance());
mPerformingSingleMiddleClick = false;
} catch (InterruptedException e) { // ignore
}
}
};
mMiddleSingleClickThread.setPriority(Thread.MIN_PRIORITY);
mMiddleSingleClickThread.start();
}
else if (SwingUtilities.isMiddleMouseButton(e) && (e.getClickCount() == 2)) {
if(!mPerformingSingleMiddleClick && mMiddleSingleClickThread != null && mMiddleSingleClickThread.isAlive()) {
mMiddleSingleClickThread.interrupt();
}
if(!mPerformingSingleMiddleClick) {
int row = mProgramTable.rowAtPoint(e.getPoint());
mProgramTable.changeSelection(row, 0, false, false);
Program p = (Program) mProgramTableModel.getValueAt(row, 1);
devplugin.Plugin.getPluginManager().handleProgramMiddleDoubleClick(p, CapturePlugin.getInstance());
}
}
}