KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > tasklist > usertasks > actions > PurgeTasksAction


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.tasklist.usertasks.actions;
21
22 import java.awt.event.ActionEvent JavaDoc;
23 import javax.swing.event.ListSelectionEvent JavaDoc;
24 import javax.swing.tree.TreePath JavaDoc;
25 import org.netbeans.modules.tasklist.usertasks.UserTaskTreeTableNode;
26 import org.netbeans.modules.tasklist.usertasks.UserTaskView;
27 import org.netbeans.modules.tasklist.usertasks.model.UserTask;
28 import org.openide.DialogDisplayer;
29 import org.openide.NotifyDescriptor;
30 import org.openide.util.NbBundle;
31
32 /**
33  * Delete all tasks marked completed
34  *
35  * @author Tor Norbye
36  * @author tl
37  */

38 public class PurgeTasksAction extends UTViewAction {
39     private static final long serialVersionUID = 2;
40
41     /**
42      * Constructor.
43      *
44      * @param utv view associated with this action
45      */

46     public PurgeTasksAction(UserTaskView utv) {
47         super(utv, NbBundle.getMessage(PurgeTasksAction.class,
48                 "LBL_PurgeTodo")); // NOI18N
49
}
50     
51     public void actionPerformed(ActionEvent JavaDoc e) {
52         NotifyDescriptor nd = new NotifyDescriptor.Confirmation(
53             NbBundle.getMessage(PurgeTasksAction.class, "PurgeTasks"), // NOI18N
54
NbBundle.getMessage(PurgeTasksAction.class, "PurgeTasksTitle"), // NOI18N
55
NotifyDescriptor.OK_CANCEL_OPTION
56         );
57         if (DialogDisplayer.getDefault().notify(nd) == NotifyDescriptor.OK_OPTION) {
58             TreePath JavaDoc[] tp = utv.getTreeTable().getSelectedPaths();
59             UserTask[] uts = new UserTask[tp.length];
60             for (int i = 0; i < tp.length; i++) {
61                 UserTaskTreeTableNode n = (UserTaskTreeTableNode)
62                         tp[i].getLastPathComponent();
63                 uts[i] = n.getUserTask();
64             }
65             uts = UserTask.reduce(uts);
66             for (int i = 0; i < uts.length; i++) {
67                 uts[i].purgeCompleted();
68                 if (uts[i].isDone()) {
69                     if (uts[i].getParent() != null)
70                         uts[i].getParent().getSubtasks().remove(uts[i]);
71                     else
72                         uts[i].getList().getSubtasks().remove(uts[i]);
73                 }
74             }
75         }
76     }
77
78     public void valueChanged(ListSelectionEvent JavaDoc e) {
79         TreePath JavaDoc[] tp = utv.getTreeTable().getSelectedPaths();
80         setEnabled(tp.length > 0);
81     }
82 }
83
Popular Tags