PageRenderTime 82ms CodeModel.GetById 40ms app.highlight 5ms RepoModel.GetById 35ms app.codeStats 0ms

/bundles/plugins-trunk/LucenePlugin/src/gatchan/jedit/lucene/ProjectWatcher.java

#
Java | 69 lines | 41 code | 8 blank | 20 comment | 8 complexity | 9f72874e9400412ba503a853e49e13e3 MD5 | raw file
 1/*
 2 * :tabSize=8:indentSize=8:noTabs=false:
 3 * :folding=explicit:collapseFolds=1:
 4 *
 5 * Copyright (C) 2009, 2011 Matthieu Casanova
 6 * Copyright (C) 2009, 2011 Shlomy Reinstein
 7 *
 8 * This program is free software; you can redistribute it and/or
 9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20 */
21package gatchan.jedit.lucene;
22
23import javax.swing.JOptionPane;
24
25import org.gjt.sp.jedit.EditBus;
26import org.gjt.sp.jedit.jEdit;
27import org.gjt.sp.jedit.EditBus.EBHandler;
28
29import projectviewer.event.StructureUpdate;
30import projectviewer.event.ViewerUpdate;
31
32public class ProjectWatcher
33{
34	public ProjectWatcher()
35	{
36		EditBus.addToBus(this);
37	}
38
39	@EBHandler
40	public void handleStructureUpdate(StructureUpdate su)
41	{
42		if (su.getType() == StructureUpdate.Type.PROJECT_REMOVED)
43			checkRemoveProjectIndex(su.getNode().getName());
44	}
45
46	@EBHandler
47	public void handleViewerUpdate(ViewerUpdate vu)
48	{
49		if (vu.getType() == ViewerUpdate.Type.PROJECT_LOADED)
50			LucenePlugin.instance.setCurrentIndex(vu.getView(), vu.getNode().getName());
51	}
52
53	private static void checkRemoveProjectIndex(String project)
54	{
55		Index index = LucenePlugin.instance.getIndex(project);
56		if (index == null)
57			return;
58		int res = JOptionPane
59			.showConfirmDialog(jEdit.getActiveView(), "Remove Lucene index of project '" + project + "'?",
60					   "Lucene plugin", JOptionPane.YES_NO_OPTION);
61		if (res == JOptionPane.YES_OPTION)
62			LucenePlugin.instance.removeIndex(project);
63	}
64
65	public void stop()
66	{
67		EditBus.removeFromBus(this);
68	}
69}