-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
1) Abstracted ResNode from a DefaultNode that can be used with other tree models. 2) Added contitional checking for if resources were changed, whenver you close a frame it will check for changes and store that in the resource. The global check for changes method will iterate all open frames and all resources in the resource map asking if they have changes. 3) Number two led me back to the issue for wrong refernces to Game Info/Settings after load, I have identified the cause and applied a temporary patch. 4) Added the foundation for searching in resources and also placed the event panel in a tab in this area, what's interesting is that I have noticed that if the toolbar for it is set floatable and you float it out it will take the tab with it and it can still be redocked. This possibly menas a raw docking framework could be built from JToolBar.
- Loading branch information
1 parent
2741645
commit 8eb131f
Showing
18 changed files
with
707 additions
and
194 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
/** | ||
* @file VisibleNode.java | ||
* @brief Class that implements show/hide capabilities for generic tree nodes. | ||
* | ||
* @section License | ||
* | ||
* Copyright (C) 2014 Robert B. Colton | ||
* This file is a part of the LateralGM IDE. | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 3 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
**/ | ||
|
||
package org.lateralgm.components.impl; | ||
|
||
import java.awt.Font; | ||
import java.util.Enumeration; | ||
|
||
import javax.swing.Icon; | ||
import javax.swing.tree.DefaultMutableTreeNode; | ||
import javax.swing.tree.TreeNode; | ||
|
||
public class DefaultNode extends DefaultMutableTreeNode | ||
{ | ||
|
||
/** | ||
* TODO: Fix if needed. | ||
*/ | ||
private static final long serialVersionUID = 1L; | ||
protected boolean isVisible = true; | ||
protected Icon icon; | ||
|
||
public Icon getIcon() { | ||
return icon; | ||
} | ||
|
||
public Icon getIconisedGroup() { | ||
return null; | ||
} | ||
|
||
public Icon getLeafIcon() { | ||
return getIcon(); | ||
} | ||
|
||
public Font getFont(Font com) { | ||
return com; | ||
} | ||
|
||
public void setVisible(boolean visible) { | ||
this.isVisible = visible; | ||
} | ||
|
||
public boolean isVisible() { | ||
return this.isVisible; | ||
} | ||
|
||
public TreeNode getChildAt(int index, boolean filterIsActive) { | ||
if (!filterIsActive) { | ||
return super.getChildAt(index); | ||
} | ||
if (children == null) { | ||
throw new ArrayIndexOutOfBoundsException("node has no children"); | ||
} | ||
|
||
int realIndex = -1; | ||
int visibleIndex = -1; | ||
//NOTE: If you really wanted to be safe you could check the cast of e.nextElement() | ||
//and count every node that is not DefaultNode based as visible. | ||
//For now we know we are safe though. | ||
Enumeration<?> e = children.elements(); | ||
while (e.hasMoreElements()) { | ||
DefaultNode node = (DefaultNode) e.nextElement(); | ||
if (node.isVisible()) { | ||
visibleIndex++; | ||
} | ||
realIndex++; | ||
if (visibleIndex == index) { | ||
return (TreeNode) children.elementAt(realIndex); | ||
} | ||
} | ||
|
||
throw new ArrayIndexOutOfBoundsException("index unmatched"); | ||
//return (TreeNode)children.elementAt(index); | ||
} | ||
|
||
public int getChildCount(boolean filterIsActive) { | ||
if (!filterIsActive) { | ||
return super.getChildCount(); | ||
} | ||
if (children == null) { | ||
return 0; | ||
} | ||
|
||
int count = 0; | ||
Enumeration<?> e = children.elements(); | ||
while (e.hasMoreElements()) { | ||
DefaultNode node = (DefaultNode) e.nextElement(); | ||
if (node.isVisible()) { | ||
count++; | ||
} | ||
} | ||
|
||
return count; | ||
} | ||
|
||
public DefaultNode(String name) | ||
{ | ||
super(name); | ||
} | ||
|
||
public DefaultNode addChild(String name) | ||
{ | ||
DefaultNode b = new DefaultNode(name); | ||
add(b); | ||
return b; | ||
} | ||
|
||
public boolean getAllowsChildren() | ||
{ | ||
if (isRoot()) return false; | ||
return true; | ||
} | ||
|
||
public void openFrame() | ||
{ | ||
// TODO Auto-generated method stub | ||
|
||
} | ||
|
||
public class EventNode extends DefaultNode { | ||
int emainid, eid; | ||
|
||
public EventNode(String name, int mid, int id) | ||
{ | ||
super(name); | ||
emainid = mid; | ||
eid = id; | ||
// TODO Auto-generated constructor stub | ||
} | ||
|
||
} | ||
|
||
} |
Oops, something went wrong.