package com.c2kernel.gui.tree; 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.common.ObjectNotFoundException; 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()+"'."); // if an item - resolve the item and get its properties try { 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; try { this.type = myEntity.getProperty("Type"); } catch (ObjectNotFoundException e) { this.type = ""; } String iconString = this.type; if (type.equals("ActivityDesc")) try { iconString = myEntity.getProperty("Complexity")+iconString; } catch (ObjectNotFoundException e) { iconString = "error"; } iconString = iconString.toLowerCase(); this.setIcon(iconString); } catch (ObjectNotFoundException e1) { this.sysKey = -1; this.type="Error"; this.name="Entity not found"; this.setIcon("error"); } createTreeNode(); } 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; } }