package com.c2kernel.gui.data; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import com.c2kernel.entity.proxy.EntityProxy; import com.c2kernel.gui.EntityTabManager; import com.c2kernel.lookup.Path; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Language; import com.c2kernel.utils.Logger; /** * Structure for Item presence on the tree and ItemDetails boxes. Created by NodeFactory. * @author $Author: abranson $ * @version $Version$ */ public abstract class NodeEntity extends Node { protected EntityProxy myEntity = null; public NodeEntity(Path path, EntityTabManager desktop) { super(path, desktop); Logger.msg(2,"NodeEntity. - Creating item for '"+path.toString()+"'."); try { // if an item - resolve the item and get its properties myEntity = Gateway.getProxyManager().getProxy(path); this.sysKey = path.getSysKey(); Logger.msg(2,"NodeEntity. - System key is "+this.sysKey); // Name should be the alias if present String alias = myEntity.getName(); if (alias != null) this.name = alias; this.type = myEntity.getProperty("Type"); String iconString = this.type; if (type.equals("ActivityDesc")) iconString = myEntity.getProperty("Complexity")+iconString; iconString = iconString.toLowerCase(); this.setIcon(iconString); createTreeNode(); } catch (Exception e) { Logger.msg(2, "NodeEntity. - "+sysKey+" failed to resolve:"); Logger.error(e); } } public EntityProxy getEntity() { return myEntity; } /** * */ @Override public JPopupMenu getPopupMenu() { JPopupMenu popup = super.getPopupMenu(); JMenuItem openItem = new JMenuItem(Language.translate("Open")); openItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { openItem(); } }); popup.addSeparator(); popup.add(openItem); return popup; } public void openItem() { desktop.add(this); } public ArrayList getTabs() { ArrayList requiredTabs = new ArrayList(); return requiredTabs; } }