use of org.netbeans.api.project.Project in project netbeans-mmd-plugin by raydac.
the class MovePanel method initValues.
private void initValues() {
final String text;
if (this.files.length > 1) {
text = String.format(BUNDLE.getString("MovePanel.multiFileText"), Integer.toString(this.files.length));
} else {
text = String.format(BUNDLE.getString("MovePanel.singleFileText"), this.files[0].getName());
}
this.labelMessage.setText(text);
final List<Project> projects = new ArrayList<Project>();
for (final Project p : OpenProjects.getDefault().getOpenProjects()) {
projects.add(p);
}
final ComboBoxModel<Project> projectModel = new DefaultComboBoxModel<Project>(projects.toArray(new Project[projects.size()]));
final ItemListener listener = new ItemListener() {
@Override
public void itemStateChanged(final ItemEvent e) {
if (comboProjects.equals(e.getSource())) {
updateFolders();
parent.stateChanged(null);
} else if (comboFolders.equals(e.getSource())) {
parent.stateChanged(null);
}
}
};
this.comboProjects.addItemListener(listener);
this.comboFolders.addItemListener(listener);
this.comboProjects.setModel(projectModel);
this.comboProjects.setSelectedItem(FileOwnerQuery.getOwner(this.files[0]));
updateFolders();
final ExplorerContext explorerContext = this.lookup.lookup(ExplorerContext.class);
if (explorerContext != null) {
final Node targetNode = explorerContext.getTargetNode();
if (targetNode != null) {
final DataObject dobj = targetNode.getLookup().lookup(DataObject.class);
if (dobj != null) {
final FileObject fo = dobj.getPrimaryFile();
if (fo != null && fo.isValid() && fo.isFolder()) {
final Project proj = FileOwnerQuery.getOwner(fo);
if (proj != null) {
this.comboProjects.setSelectedItem(proj);
this.comboFolders.setSelectedItem(FileUtil.getRelativePath(proj.getProjectDirectory(), fo));
}
}
}
}
}
}
use of org.netbeans.api.project.Project in project netbeans-mmd-plugin by raydac.
the class MovePanel method updateFolders.
private void updateFolders() {
final Project project = (Project) this.comboProjects.getSelectedItem();
if (project == null) {
this.comboFolders.setModel(new DefaultComboBoxModel());
} else {
String[] foldersForProject = this.cachedFolders.get(project);
if (foldersForProject == null) {
foldersForProject = collectAllFoldersForProject(project);
this.cachedFolders.put(project, foldersForProject);
}
final ComboBoxModel<String> folderModel = new DefaultComboBoxModel<String>(foldersForProject);
this.comboFolders.setModel(folderModel);
if (folderModel.getSize() > 0) {
this.comboFolders.setSelectedIndex(0);
}
}
}
use of org.netbeans.api.project.Project in project netbeans-mmd-plugin by raydac.
the class ProjectCellRenderer method getListCellRendererComponent.
@Override
public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) {
if (!(value instanceof Project)) {
return this;
}
setName("ComboBox.listRenderer");
final ProjectInformation info = ProjectUtils.getInformation((Project) value);
setText(info.getDisplayName());
setIcon(info.getIcon());
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
return this;
}
use of org.netbeans.api.project.Project in project enclojure by EricThorsen.
the class ClojureCodeCompletion_Provider method createTask.
public CompletionTask createTask(int i, final JTextComponent jTextComponent) {
// try {
// RT.var("clojure.core", "require").invoke(Symbol.create("test.CodeCompletion.PW.cljcompletion"));
// } catch (Throwable ex) {
// Exceptions.printStackTrace(ex);
// }
final int ctype = i;
if (i != CompletionProvider.COMPLETION_QUERY_TYPE && i != CompletionProvider.COMPLETION_ALL_QUERY_TYPE)
return null;
return new AsyncCompletionTask(new AsyncCompletionQuery() {
protected void query(final CompletionResultSet completionResultSet, final Document document, final int caretOffset) {
final StyledDocument bDoc = (StyledDocument) document;
int startOffset = -1;
class Operation implements Runnable {
boolean showCompletion = false;
boolean isDotPressed = false;
String filter = null;
int startOffset = caretOffset;
String nameSpace = null;
String lastAtom = null;
public void run() {
nameSpace = null;
lastAtom = null;
final Iterator it;
final String ret;
try {
final int lineStartOffset = getRowFirstNonWhite(bDoc, caretOffset);
String line;
if (caretOffset > lineStartOffset)
line = bDoc.getText(lineStartOffset, caretOffset - lineStartOffset);
else
line = "";
int begLine = indexOfSpace(line);
String filter = line.substring(begLine);
isDotPressed = dotPressed(filter);
int layout = getLayout(filter, isDotPressed);
begLine = lineStartOffset + begLine;
Hashtable processInfo = new Hashtable();
processInfo.put("layout", layout);
processInfo.put("filter", filter);
processInfo.put("begLine", begLine);
processInfo.put("isClojure", isClojure);
it = processLayout(processInfo);
filter = (String) processInfo.get("filter");
begLine = (Integer) processInfo.get("begLine");
if (it != null) {
handleMaps(it, completionResultSet, processInfo, filter, begLine);
//
}
if ((layout != backSlashAfterParen && layout != backSlashNoParen) && !isDotPressed) {
// now add hippie completion results
processInfo.put("isClojure", true);
processInfo.put("priority", 3);
processInfo.put("isMethodOrFunction", true);
processInfo.put("source", "Hippie Completion");
processInfo.put("isNamespaceOrPackage", false);
processInfo.put("isConstructor", false);
ArrayList<String> l = getAllHippieMatches(jTextComponent);
if (l.size() > 0) {
Iterator lit;
lit = l.listIterator();
while (lit.hasNext()) {
final String listentry = (String) lit.next();
completionResultSet.addItem(new ClojureCodeCompletionItem(listentry, begLine, caretOffset, processInfo));
}
}
}
completionResultSet.setAnchorOffset(lineStartOffset);
completionResultSet.finish();
} catch (BadLocationException ex) {
LOG.log(Level.FINEST, ex.getMessage());
}
}
private String handleNullString(String val) {
if (val == null)
return "";
else
return val;
}
private Integer handleNullInteger(Integer val) {
if (val == null)
return 0;
else
return val;
}
private Boolean handleNullBoolean(Boolean val) {
if (val == null)
return false;
else
return val;
}
private void handleMaps(Iterator iter, CompletionResultSet c, Hashtable pInfo, String filter, int begLine) {
Boolean blnCurrentListEmpty = true;
if (CurrentList.size() > 0)
blnCurrentListEmpty = false;
while (iter.hasNext()) {
final PersistentArrayMap entry = (PersistentArrayMap) iter.next();
if ((blnCurrentListEmpty) && (!gettingMethods))
CurrentList.add(entry);
String displaystr = (String) entry.get(Keyword.intern(Symbol.create("display")));
String fullclassstr = (String) entry.get(Keyword.intern(Symbol.create("fullclassname")));
Boolean isClojure = (Boolean) entry.get(Keyword.intern(Symbol.create("isclojure")));
Boolean isNamespaceOrPackage = (Boolean) entry.get(Keyword.intern(Symbol.create("isnamespaceorpkg")));
Boolean isMethodOrFunction = (Boolean) entry.get(Keyword.intern(Symbol.create("ismethodorfunction")));
Boolean isConstructor = (Boolean) entry.get(Keyword.intern(Symbol.create("isconstructor")));
String namespace = (String) entry.get(Keyword.intern(Symbol.create("namespace")));
String method = (String) entry.get(Keyword.intern(Symbol.create("method")));
Integer priority = (Integer) entry.get(Keyword.intern(Symbol.create("priority")));
pInfo.put("display", handleNullString(displaystr));
pInfo.put("fullclassname", handleNullString(fullclassstr));
pInfo.put("isClojure", isClojure);
pInfo.put("isNamespaceOrPackage", isNamespaceOrPackage);
pInfo.put("isMethodOrFunction", isMethodOrFunction);
pInfo.put("namespace", handleNullString(namespace));
pInfo.put("method", handleNullString(method));
pInfo.put("priority", handleNullInteger(priority));
pInfo.put("isConstructor", handleNullBoolean(isConstructor));
if (isClojure)
pInfo.put("source", "Clojure");
else
pInfo.put("source", "Java");
String origFilter = (String) pInfo.get("origFilter");
int layout = (Integer) pInfo.get("layout");
if (addFilter) {
if (// if this is a java method
isMethodOrFunction && (!isClojure)) {
if ((filter != null) && (displaystr.startsWith(filter.trim())))
completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
} else {
if (layout != backSlashAfterParen && layout != backSlashNoParen) {
if (isNamespaceOrPackage) {
if ((filter != null) && (displaystr.contains(origFilter.trim())))
completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
} else {
if ((filter != null) && (displaystr.contains(filter.trim())))
completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
}
} else {
if ((filter != null) && (displaystr.startsWith(filter.trim())))
completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
}
}
} else
completionResultSet.addItem(new ClojureCodeCompletionItem(displaystr, begLine, caretOffset, pInfo));
}
}
private int getLayout(String filter, boolean isDotPressed) {
try {
if (filter.startsWith("(")) {
filter = filter.substring(1);
if (backSlashPressed(filter)) {
if ((filter != null) && (filter.trim().length() > 0))
return backSlashAfterParen;
else
return -1;
} else {
if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && Character.isUpperCase(filter.trim().charAt(0))) {
return UppercaseAfterParenWithDot;
} else {
if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && (filter.trim().charAt(0) == '.')) {
// get all java methods available
return FirstDotAfterParen;
} else {
if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && Character.isLowerCase(filter.trim().charAt((0))))
return LowercaseAfterParenWithDot;
else {
if ((filter != null) && (filter.trim().length() > 0) && Character.isUpperCase(filter.trim().charAt((0))))
return UppercaseAfterParen;
else
// lowercase
return LowercaseAfterParen;
}
}
}
}
} else // No Paren
{
if (backSlashPressed(filter)) {
if ((filter != null) && (filter.trim().length() > 0))
return backSlashNoParen;
else
return -1;
} else {
if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && Character.isUpperCase(filter.trim().charAt(0))) {
return UppercaseNoParenWithDot;
} else {
if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && (filter.trim().charAt(0) == '.')) {
return FirstDotNoParen;
} else {
if (isDotPressed && (filter != null) && (filter.trim().length() > 0) && Character.isLowerCase(filter.trim().charAt((0))))
return LowercaseNoParenWithDot;
else {
if ((filter != null) && (filter.trim().length() > 0) && Character.isUpperCase(filter.trim().charAt((0))))
return UppercaseNoParen;
else
// lowercase
return LowercaseNoParen;
}
}
}
}
}
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
}
return -1;
}
private Iterator processLayout(Hashtable processInfo) {
// private static final int LowercaseAfterParen = 0;
// private static final int UppercaseAfterParen = 1;
// private static final int LowercaseAfterParenWithDot = 2;
// private static final int UppercaseAfterParenWithDot = 3;
// private static final int LowercaseNoParen = 4;
// private static final int UppercaseNoParen = 5;
// private static final int LowercaseNoParenWithDot = 6;
// private static final int UppercaseNoParenWithDot = 7;
// private static final int FirstDotAfterParen = 8;
// private static final int FirstDotNoParen = 9;
int layout = (Integer) processInfo.get("layout");
String filter = (String) processInfo.get("filter");
String begFilter;
String origFilter = "";
int begLine = (Integer) processInfo.get("begLine");
int dotpos;
Iterator iter = null;
try {
filter = filter.trim();
switch(layout) {
case LowercaseAfterParen:
// remove the paranthesis
filter = filter.substring(1);
origFilter = filter;
addFilter = true;
iter = getResultsForScenario2(filter);
begLine = begLine + 1;
break;
case UppercaseAfterParen:
// remove the paranthesis
filter = filter.substring(1);
origFilter = filter;
addFilter = true;
iter = getResultsForScenario2(filter);
begLine = begLine + 1;
break;
case LowercaseAfterParenWithDot:
// remove the paranthesis
filter = filter.substring(1);
origFilter = filter;
dotpos = filter.lastIndexOf(".");
begFilter = filter.substring(0, dotpos);
addFilter = true;
// iter=getResultsForScenario1(getClsForFilter(begFilter),begFilter + "."); //check java classes
// check java classes
iter = getResultsForScenario1(getClsForFilter(begFilter), origFilter);
// iter=getAllClojureNamespaces1(origFilter);
filter = filter.substring(dotpos + 1);
// filter=origFilter;
begLine = begLine + 1;
break;
case UppercaseAfterParenWithDot:
// remove the paranthesis
filter = filter.substring(1);
origFilter = filter;
dotpos = filter.lastIndexOf(".");
begFilter = filter.substring(0, dotpos);
addFilter = true;
// iter=getResultsForScenario1(getClsForFilter(begFilter),begFilter + "."); //check java classes
// check java classes
iter = getResultsForScenario1(getClsForFilter(begFilter), origFilter);
filter = filter.substring(dotpos + 1);
// filter=origFilter;
begLine = begLine + 1;
break;
case backSlashAfterParen:
// remove the paranthesis
filter = filter.substring(1);
origFilter = filter;
dotpos = filter.lastIndexOf("/");
begFilter = filter.substring(0, dotpos);
addFilter = true;
iter = getResultsForScenario3(getClsForFilter(begFilter), begFilter);
filter = filter.substring(dotpos + 1);
begLine = begLine + 1;
break;
case FirstDotAfterParen:
// remove the paranthesis
filter = filter.substring(1);
origFilter = filter;
addFilter = true;
if (filter.equalsIgnoreCase("."))
filter = "";
else {
dotpos = filter.lastIndexOf(".");
filter = filter.substring(dotpos + 1);
}
iter = getResultsForScenario4();
begLine = begLine + 2;
break;
case UppercaseNoParen:
origFilter = filter;
addFilter = true;
iter = getResultsForScenario2(filter);
break;
case UppercaseNoParenWithDot:
origFilter = filter;
dotpos = filter.lastIndexOf(".");
begFilter = filter.substring(0, dotpos);
addFilter = true;
// iter=getResultsForScenario1(getClsForFilter(begFilter),begFilter + "."); //check java classes
// check java classes
iter = getResultsForScenario1(getClsForFilter(begFilter), origFilter);
filter = filter.substring(dotpos + 1);
// filter=origFilter;
break;
case FirstDotNoParen:
origFilter = filter;
addFilter = true;
if (filter.equalsIgnoreCase("."))
filter = "";
else {
dotpos = filter.lastIndexOf(".");
filter = filter.substring(dotpos + 1);
}
iter = getResultsForScenario4();
begLine = begLine + 1;
break;
case LowercaseNoParenWithDot:
origFilter = filter;
dotpos = filter.lastIndexOf(".");
begFilter = filter.substring(0, dotpos);
addFilter = true;
// iter=getResultsForScenario1(getClsForFilter(begFilter),begFilter + "."); //check java classes
// check java classes
iter = getResultsForScenario1(getClsForFilter(begFilter), origFilter);
filter = filter.substring(dotpos + 1);
// filter=origFilter;
break;
case LowercaseNoParen:
origFilter = filter;
addFilter = true;
iter = getResultsForScenario2(filter);
break;
case backSlashNoParen:
origFilter = filter;
dotpos = filter.lastIndexOf("/");
begFilter = filter.substring(0, dotpos);
addFilter = true;
iter = getResultsForScenario3(getClsForFilter(begFilter), begFilter);
filter = filter.substring(dotpos + 1);
break;
}
processInfo.put("layout", layout);
processInfo.put("filter", filter);
processInfo.put("begLine", begLine);
processInfo.put("isClojure", isClojure);
processInfo.put("origFilter", origFilter);
return iter;
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
}
return iter;
}
private Iterator getiterator() {
try {
return ((Iterable) getnamesfn.invoke(Symbol.create("clojure.core"))).iterator();
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
}
return null;
}
private Iterator getclojureiterator() {
try {
return ((Iterable) getclojurenamesfn.invoke(Symbol.create("clojure.core"))).iterator();
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
}
return null;
}
private Iterator getclojurefunctionsforns(String nspart) {
try {
java.lang.Object iter = (getclojurefunctionsfornsfn.invoke(nspart));
if (iter != null)
return ((Iterable) iter).iterator();
else
return null;
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getJavaMethods(String classname) {
try {
return ((Iterable) getjavamethodsfn.invoke(Class.forName(classname))).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getStaticJavaMethods(String classname) {
try {
return ((Iterable) getstaticjavamethodsfn.invoke(Class.forName(classname))).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getAllJavaMethods() {
try {
return ((Iterable) getalljavamethodsfn.invoke(Symbol.create("clojure.core"))).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getAllJavaInstanceMethods(String classname) {
try {
return ((Iterable) getalljavainstancemethodsfn.invoke(Class.forName(classname))).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getAllClojureNamespaces1(String filter) {
try {
return ((Iterable) getallclojurenamespaces1fn.invoke(1)).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getResultsForScenario1(String classname, String filter) {
try {
gettingMethods = false;
if (ctype == CompletionProvider.COMPLETION_ALL_QUERY_TYPE) {
completionResultSet.setHasAdditionalItems(true);
getExtLibs = true;
} else {
completionResultSet.setHasAdditionalItems(false);
getExtLibs = false;
}
Project proj = ReplTopComponent.GetProjectFromDocument(document);
if (!getExtLibs) {
proj = null;
CurrentList = Scenario1List;
} else
CurrentList = Scenario1ListExtLib;
int listSize = CurrentList.size();
if (classname == null) {
if (listSize > 0)
return CurrentList.iterator();
else
return ((Iterable) getresultsforscenario1fn.invoke(proj, jTextComponent, null, filter)).iterator();
} else {
gettingMethods = true;
return ((Iterable) getresultsforscenario1fn.invoke(proj, jTextComponent, Class.forName(classname), filter)).iterator();
}
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getResultsForScenario2(String filter) {
try {
gettingMethods = false;
if (ctype == CompletionProvider.COMPLETION_ALL_QUERY_TYPE) {
completionResultSet.setHasAdditionalItems(true);
getExtLibs = true;
} else {
completionResultSet.setHasAdditionalItems(false);
getExtLibs = false;
}
Project proj = ReplTopComponent.GetProjectFromDocument(document);
if (!getExtLibs) {
proj = null;
CurrentList = Scenario2List;
} else
CurrentList = Scenario2ListExtLib;
int listSize = CurrentList.size();
if (listSize > 0)
return CurrentList.iterator();
else
return ((Iterable) getresultsforscenario2fn.invoke(proj, jTextComponent, Symbol.create("clojure.core"), filter)).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getResultsForScenario3(String classname, String filter) {
try {
gettingMethods = false;
CurrentList = Scenario3List;
if (classname == null) {
gettingMethods = true;
return ((Iterable) getresultsforscenario3fn.invoke(null, filter)).iterator();
} else {
gettingMethods = true;
return ((Iterable) getresultsforscenario3fn.invoke(Class.forName(classname), filter)).iterator();
}
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getResultsForScenario4() {
try {
gettingMethods = false;
if (ctype == CompletionProvider.COMPLETION_ALL_QUERY_TYPE) {
completionResultSet.setHasAdditionalItems(true);
getExtLibs = true;
} else {
completionResultSet.setHasAdditionalItems(false);
getExtLibs = false;
}
Project proj = ReplTopComponent.GetProjectFromDocument(document);
if (!getExtLibs) {
proj = null;
CurrentList = Scenario4List;
} else
CurrentList = Scenario4List;
int listSize = CurrentList.size();
if (listSize > 0)
return CurrentList.iterator();
else
return ((Iterable) getresultsforscenario4fn.invoke(proj)).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getAllJavaClasses() {
try {
return ((Iterable) getalljavaclassesfn.invoke(jTextComponent)).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getAllJavaClasses(String filter) {
try {
return ((Iterable) getalljavaclassesbyfilterfn.invoke(jTextComponent, filter)).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getAllClojureNamespaces(String filter) {
try {
return ((Iterable) getallclojurenamespacesfn.invoke(jTextComponent, filter)).iterator();
} catch (Exception ex) {
// Exceptions.printStackTrace(ex);
return null;
}
}
private Iterator getFullJavaClasses() {
try {
return ((Iterable) getfulljavaclassesfn.invoke(Symbol.create("clojure.core"))).iterator();
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
}
return null;
}
private Iterator getEnclosingFormMap(JTextComponent jTextComponent) {
try {
return ((Iterable) selectcurrentformfn.invoke(jTextComponent)).iterator();
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
}
return null;
}
private String getClsForFilter(String filterstr) {
Iterator iter;
iter = getAllJavaClasses();
if (iter != null) {
while (iter.hasNext()) {
final String entry = (String) iter.next();
if ((entry.endsWith("." + filterstr)) || (entry.equals(filterstr)))
return entry;
}
return null;
} else
return null;
}
private boolean containsFilter(Iterator iter, String filter) {
try {
if (iter != null) {
while (iter.hasNext()) {
final String entry = (String) iter.next();
if ((filter != null) && (entry.startsWith(filter)))
return true;
}
}
return false;
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
return false;
}
}
}
Operation oper = new Operation();
bDoc.render(oper);
}
}, jTextComponent);
}
use of org.netbeans.api.project.Project in project enclojure by EricThorsen.
the class ClojureLookupProvider method createAdditionalLookup.
public Lookup createAdditionalLookup(Lookup baseContext) {
Project project = baseContext.lookup(Project.class);
if (project == null) {
throw new IllegalStateException("Lookup " + baseContext + " does not contain a Project");
}
List<Object> instances = new ArrayList<Object>(2);
instances.add(LookupMergerSupport.createActionProviderLookupMerger());
instances.add(new ClojureActionProvider(project));
return Lookups.fixed(instances.toArray(new Object[instances.size()]));
}
Aggregations