| View previous topic :: View next topic |
| Author |
Message |
Dilini
Joined: 31 Jul 2009 Posts: 11
|
Posted: Thu Aug 06, 2009 9:06 am Post subject: navigator problem |
|
|
Hi,
I read your Architecture document and try to implement navigator.
After I implement it, my navigator display context not change when switch
between two files. That means, when I switch between two files, Navigator
content not been changed.
When first time I open new file it correctly display Navigator data. But
after when I open another file navigator data not been change. So how can I
resolve this problem?
I attach some part of my code to this mail.
It’s very thankful If you can help me to resolve this problem
Thanks and Regards
Dilini
package ucsc.msc.intelligentPlsqlEditor.Navigator;
import java.awt.Component;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.ToolTipManager;
import javax.swing.tree.DefaultMutableTreeNode;
import org.netbeans.spi.navigator.NavigatorPanel;
import org.openide.filesystems.FileObject;
import org.openide.util.Lookup;
import org.openide.util.LookupEvent;
import org.openide.util.LookupListener;
import ucsc.msc.intelligentPlsqlEditor.dataobjects.PLSQLDataObject;
public class BasicNavPanelImpl implements NavigatorPanel {
private JComponent panelUI;
private static final Lookup.Template MY_DATA = new
Lookup.Template(PLSQLDataObject.class);
/** current context to work on */
private Lookup.Result curContext;
/** listener to context changes */
private LookupListener contextL;
private JTree tree;
DefaultMutableTreeNode root;
DefaultMutableTreeNode child;
DefaultMutableTreeNode Secondchild;
public Map<Integer, NavigatorData> map = new HashMap<Integer,
NavigatorData>();//= new HashMap<Integer, String[]>();
NavigatorData nvigate;
/** public no arg constructor needed for system to instantiate provider
well */
public BasicNavPanelImpl() {
}
public String getDisplayHint() {
return "Basic dummy implementation of NavigatorPanel interface";
}
public String getDisplayName() {
return "Dummy View";
}
public JComponent getComponent() {
System.out.println("get component");
if (panelUI == null) {
tree = new JTree(root);
CustomTreeCellRenderer customCellRenderer = new
CustomTreeCellRenderer();
tree.setCellRenderer(customCellRenderer);
ToolTipManager.sharedInstance().registerComponent(tree);
panelUI = new JScrollPane(tree);
panelUI.updateUI();
}
return panelUI;
}
public void panelActivated(Lookup context) {
System.out.println("Panel Activate");
// lookup context and listen to result to get notified about context
changes
curContext = context.lookup(MY_DATA);
curContext.addLookupListener(getContextListener());
// get actual data and recompute content
Collection data = curContext.allInstances();
setNewContent(data);
}
public void panelDeactivated() {
System.out.println("Deactivate");
curContext.removeLookupListener(getContextListener());
curContext = null;
panelUI = null;
}
public Lookup getLookup() {
// go with default activated Node strategy
return null;
}
/************* non - public part ************/
private void setNewContent(Collection newData) {
System.out.println(" ShowContact ********");
nvigate = new NavigatorData();
Iterator ite = newData.iterator();
while (ite.hasNext()) {
PLSQLDataObject dObj = (PLSQLDataObject) ite.next();
while (true) {
try {
FileObject fo = dObj.getPrimaryFile();
String nameOfFile = dObj.getNodeDelegate().getName();
root = new DefaultMutableTreeNode(nameOfFile);
InputStream is = fo.getInputStream();
BufferedReader from = new BufferedReader(new
InputStreamReader(is));
String line;
while ((line = from.readLine()) != null) {
lineNo++;
ClassifyData(line);
}
CreateTree(map);
break;
} catch (Exception exception) {
System.out.println(" Exception in line read" +
exception);
}
}
break;
}
}
/** Accessor for listener to context */
private LookupListener getContextListener() {
if (contextL == null) {
contextL = new ContextListener();
}
return contextL;
}
/** Listens to changes of context and triggers proper action */
private class ContextListener implements LookupListener {
public void resultChanged(LookupEvent ev) {
System.out.println("result change");
Collection data = ((Lookup.Result)
ev.getSource()).allInstances();
setNewContent(data);
getComponent();
}
} // end of ContextListener
public String getContentType() {
return "text/x-plsql";
}
public void ClassifyData(String Readdataline) {
}
public void CreateTree(Map<Integer, NavigatorData> DetailForTree) {
int mapSize = DetailForTree.size();
System.out.println(mapSize);
for (int i = 1; i <= mapSize; i++) {
NavigatorData obj = DetailForTree.get(i);
int i_Level = obj.getLevel();
if (i_Level == 1) {
child = new DefaultMutableTreeNode(obj);
root.add(child);
} else {
Secondchild = new DefaultMutableTreeNode(obj);
child.add(Secondchild);
}
}
}
}
--
View this message in context: http://www.nabble.com/navigator-problem-tp24841048p24841048.html
Sent from the Netbeans Project Developers (not for user help) mailing list archive at Nabble.com. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You can attach files in this forum You can download files in this forum
|
|
|
|