01 /* This file is part of the project "Hilbert II" - http://www.qedeq.org
02 *
03 * Copyright 2000-2013, Michael Meyling <mime@qedeq.org>.
04 *
05 * "Hilbert II" is free software; you can redistribute
06 * it and/or modify it under the terms of the GNU General Public
07 * License as published by the Free Software Foundation; either
08 * version 2 of the License, or (at your option) any later version.
09 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16 package org.qedeq.gui.se.control;
17
18 import java.awt.event.ActionEvent;
19
20 import javax.swing.AbstractAction;
21
22 import org.qedeq.base.trace.Trace;
23 import org.qedeq.gui.se.tree.NothingSelectedException;
24 import org.qedeq.kernel.bo.KernelContext;
25 import org.qedeq.kernel.bo.common.QedeqBo;
26
27 /**
28 * Create LaTeX file out of selected QEDEQ module files.
29 */
30 class RemoveModuleAction extends AbstractAction {
31
32 /** This class. */
33 private static final Class CLASS = RemoveModuleAction.class;
34
35 /** Controller reference. */
36 private final QedeqController controller;
37
38 /**
39 * Constructor.
40 *
41 * @param controller Reference to controller.
42 */
43 RemoveModuleAction(final QedeqController controller) {
44 this.controller = controller;
45 }
46
47 /* inherited
48 */
49 public void actionPerformed(final ActionEvent e) {
50 final String method = "actionPerformed";
51 Trace.begin(CLASS, this, method);
52 try {
53 final QedeqBo[] props;
54 try {
55 props = controller.getSelected();
56 } catch (NothingSelectedException ex) {
57 controller.selectionError();
58 return;
59 }
60
61 final Thread thread = new Thread() {
62 public void run() {
63 for (int i = 0; i < props.length; i++) {
64 KernelContext.getInstance().removeModule(props[i].getModuleAddress());
65 }
66 }
67 };
68 thread.setDaemon(true);
69 thread.start();
70 } finally {
71 Trace.end(CLASS, this, method);
72 }
73 }
74
75 }
|