}
int row = mTable.rowAtPoint(e.getPoint());
mTable.changeSelection(row, 0, false, false);
Program p = (Program) mTable.getModel().getValueAt(row, 0);
Plugin.getPluginManager().handleProgramSingleClick(p, ReminderPluginProxy.getInstance());
mPerformingSingleClick = false;
} catch (InterruptedException ex) { // ignore
}
}
};
mLeftClickThread.setPriority(Thread.MIN_PRIORITY);
mLeftClickThread.start();
}
else if (SwingUtilities.isLeftMouseButton(e) && (e.getClickCount() == 2) && e.getModifiersEx() == 0) {
if(!mPerformingSingleClick && mLeftClickThread != null && mLeftClickThread.isAlive()) {
mLeftClickThread.interrupt();
}
if(!mPerformingSingleClick) {
int column = mTable.columnAtPoint(e.getPoint());
if (column == 1) {
return;
}
int row = mTable.rowAtPoint(e.getPoint());
mTable.changeSelection(row, 0, false, false);
Program p = (Program) mTable.getModel().getValueAt(row, 0);
PluginManagerImpl.getInstance().handleProgramDoubleClick(p, ReminderPluginProxy.getInstance());
}
}
else if (SwingUtilities.isMiddleMouseButton(e) && (e.getClickCount() == 1)) {
mMiddleSingleClickThread = new Thread("Single click") {
public void run() {
try {
mPerformingMiddleSingleClick = false;
sleep(Plugin.SINGLE_CLICK_WAITING_TIME);
mPerformingMiddleSingleClick = true;
if (mTable.columnAtPoint(e.getPoint()) == 1) {
return;
}
int row = mTable.rowAtPoint(e.getPoint());
mTable.changeSelection(row, 0, false, false);
Program p = (Program) mTable.getModel().getValueAt(row, 0);
Plugin.getPluginManager().handleProgramMiddleClick(p, ReminderPluginProxy.getInstance());
mPerformingMiddleSingleClick = false;
} catch (InterruptedException ex) { // ignore
}
}
};
mMiddleSingleClickThread.setPriority(Thread.MIN_PRIORITY);
mMiddleSingleClickThread.start();
}
else if (SwingUtilities.isMiddleMouseButton(e) && (e.getClickCount() == 2)) {
if(!mPerformingMiddleSingleClick && mMiddleSingleClickThread != null && mMiddleSingleClickThread.isAlive()) {
mMiddleSingleClickThread.interrupt();
}
if(!mPerformingMiddleSingleClick) {
int column = mTable.columnAtPoint(e.getPoint());
if (column == 1) {
return;
}
int row = mTable.rowAtPoint(e.getPoint());
mTable.changeSelection(row, 0, false, false);
Program p = (Program) mTable.getModel().getValueAt(row, 0);
PluginManagerImpl.getInstance().handleProgramMiddleDoubleClick(p, ReminderPluginProxy.getInstance());
}
}