package com.gpl.rpg.atcontentstudio.model; import java.awt.Image; import java.util.List; import javax.swing.tree.TreeNode; import com.gpl.rpg.atcontentstudio.model.gamedata.GameDataSet; public interface ProjectTreeNode extends TreeNode { public void childrenAdded(List path); public void childrenChanged(List path); public void childrenRemoved(List path); public void notifyCreated(); public String getDesc(); /** * Unnecessary for anything not below a Project. Can return null. * @return the parent Project or null. */ public Project getProject(); /** * Unnecessary for anything not below a GameDataSet. Can return null. * @return the parent GameDataSet or null. */ public GameDataSet getDataSet(); public Image getIcon(); /** * * @return The icon depicting this node when it is an open folder. Can be null for leaves. */ public Image getOpenIcon(); /** * * @return The icon depicting this node when it is a closed folder. Can be null for leaves. */ public Image getClosedIcon(); /** * * @return The icon depicting this node when it is a leaf. Should return the closed one for empty folders. */ public Image getLeafIcon(); /** * Unnecessary for anything not below a GameSource. Can return null. * @return the parent GameSource or null. */ public GameSource.Type getDataType(); public boolean isEmpty(); }