|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.search;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.openide.options.SystemOption;
import org.openide.util.NbBundle;
import org.openide.util.HelpCtx;
import org.openide.util.Lookup;
import org.openide.util.SharedClassObject;
import org.openidex.search.SearchType;
/**
*
*
* @author Marian Petras
*/
public class SearchProjectSettings extends SystemOption {
// static .....................................................................................
private static final long serialVersionUID = 6955446757377175182L;
/**
* Name of property "search criteria".
*
* @see #getCriteria
* @see #setCriteria
*/
public static final String PROP_CRITERIA = "search criteria"; //NOI18N
/** [PENDING] */
private static SearchCriterion[] searchCriteria;
// SystemOption implementation ..................................................................
/**
* Returns name of these settings.
*/
public String displayName() {
return NbBundle.getBundle(SearchProjectSettings.class)
.getString("TEXT_Search_settings"); //NOI18N
}
public HelpCtx getHelpCtx () {
return new HelpCtx(SearchProjectSettings.class);
}
public boolean isGlobal() {
return false;
}
// properties .................................................................................
/** */
private void importOldSettings() {
/* import old search criteria: */
List oldCriteria = new ArrayList();
Collection instances = Lookup.getDefault()
.lookup(new Lookup.Template(SearchType.class))
.allInstances();
for (java.util.Iterator i = instances.iterator(); i.hasNext(); ) {
SearchType instance = (SearchType) i.next();
if (instance.isValid()) {
try {
oldCriteria.add(new SearchCriterion(instance));
} catch (java.io.IOException ex) {
org.openide.ErrorManager.getDefault().notify(
org.openide.ErrorManager.EXCEPTION,
ex);
}
}
}
if (oldCriteria.isEmpty()) {
searchCriteria = new SearchCriterion[0];
} else {
searchCriteria = new SearchCriterion[oldCriteria.size()];
oldCriteria.toArray(searchCriteria);
}
}
/**
*
*
* @see #setCriteria
* @see #PROP_CRITERIA
*/
public SearchCriterion[] getSearchCriteria() {
if (searchCriteria == null) {
importOldSettings();
}
return searchCriteria;
}
/**
*
*
* @see #getCriteria
* @see #PROP_CRITERIA
*/
public void setSearchCriteria(SearchCriterion[] criteria) {
if (criteria == null) {
criteria = new SearchCriterion[0];
}
SearchCriterion[] old = searchCriteria;
searchCriteria = criteria;
firePropertyChange(PROP_CRITERIA, old, searchCriteria);
}
/** */
static final SearchProjectSettings getInstance() {
return (SearchProjectSettings)
SharedClassObject.findObject(SearchProjectSettings.class, true);
}
/**
* Adds new saved search criterion.
*
* @param c search criterion to be added
*/
void addSearchCriterion(SearchCriterion c) {
if (searchCriteria == null) {
searchCriteria = new SearchCriterion[1];
searchCriteria[0] = c;
firePropertyChange(PROP_CRITERIA, null, searchCriteria);
} else {
SearchCriterion[] old = searchCriteria;
searchCriteria = new SearchCriterion[old.length + 1];
System.arraycopy(old, 0, searchCriteria, 0, old.length);
searchCriteria[old.length] = c;
firePropertyChange(PROP_CRITERIA, old, searchCriteria);
}
}
/**
* Finds and replaces an existing search criterion with another one.
* Search criterion to be replaced is found by fields
* {@link #name} and {@link #searchTypeClassName}.
* If no matching search criterion is found, no change is done.
*
* @param name name of a search criterion to search for
* @param className class name of a search criterion to search for
* @param c search criterion to replace the found criterion by
* @return
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.