package org.korsakow.ide.ui.controller.action; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import org.korsakow.ide.Application; import org.korsakow.ide.lang.LanguageBundle; import org.korsakow.ide.ui.components.tree.FolderNode; import org.korsakow.ide.ui.components.tree.KNode; import org.korsakow.ide.ui.resourceexplorer.ResourceTreeTable; import org.korsakow.ide.ui.resourceexplorer.ResourceTreeTableModel; public class NewFolderAction implements ActionListener { private ResourceTreeTable resourceTreeTable; public NewFolderAction(ResourceTreeTable resourceBrowser) { this.resourceTreeTable = resourceBrowser; } public void actionPerformed(ActionEvent event) { Application app = Application.getInstance(); ResourceTreeTableModel model = resourceTreeTable.getTreeTableModel(); KNode selectedNode = resourceTreeTable.getSelectedNode(); if (selectedNode == null) selectedNode = model.getRoot(); int index = -1; KNode parentNode = selectedNode.getParent(); // null checks for rootNode, and for folders we want to create inside if (parentNode == null || selectedNode instanceof FolderNode) { parentNode = selectedNode; index = 0; } else index = model.getIndexOfChild(selectedNode.getParent(), selectedNode); FolderNode folderNode = new FolderNode(LanguageBundle.getString("general.newfoldername")); model.insertNodeInto(folderNode, parentNode, index); } }