/trunk/FAHView-v6project/src/main/java/com/googlecode/fahview/v6project/nodes/WorkNodeFactory.java

https://gitlab.com/BGCX067/fahview-svn-to-git · Java · 105 lines · 62 code · 16 blank · 27 comment · 6 complexity · 7c6f781f9c8e995498831d360eae8419 MD5 · raw file

  1. package com.googlecode.fahview.v6project.nodes;
  2. /*
  3. * #%L
  4. * This file is part of FAHView-v6project.
  5. * %%
  6. * Copyright (C) 2011 - 2013 Michael Thomas <mikepthomas@outlook.com>
  7. * %%
  8. * FAHView is free software: you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation, either version 3 of the License, or
  11. * (at your option) any later version.
  12. * %
  13. * FAHView is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. * %
  18. * You should have received a copy of the GNU General Public License
  19. * along with FAHView. If not, see <http://www.gnu.org/licenses/>.
  20. * #L%
  21. */
  22. import com.googlecode.fahview.v6project.WorkProject;
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. import javax.swing.event.ChangeListener;
  26. import org.netbeans.api.project.Project;
  27. import org.netbeans.spi.project.ui.support.NodeFactory;
  28. import org.netbeans.spi.project.ui.support.NodeList;
  29. import org.openide.filesystems.FileObject;
  30. import org.openide.loaders.DataObject;
  31. import org.openide.loaders.DataObjectNotFoundException;
  32. import org.openide.nodes.FilterNode;
  33. import org.openide.nodes.Node;
  34. import org.openide.util.Exceptions;
  35. /**
  36. * <p>WorkNodeFactory class.</p>
  37. *
  38. * @author <a href="mailto:mikepthomas@outlook.com">Michael Thomas</a>
  39. * @version $Id: $Id
  40. */
  41. @NodeFactory.Registration(projectType = "com-googlecode-fahview-work", position = 10)
  42. public class WorkNodeFactory implements NodeFactory {
  43. /** {@inheritDoc} */
  44. @Override
  45. public NodeList<?> createNodes(Project p) {
  46. WorkProject project = p.getLookup().lookup(WorkProject.class);
  47. assert project != null;
  48. return new WorkNodeList(project);
  49. }
  50. private class WorkNodeList implements NodeList<Node> {
  51. private final Project project;
  52. public WorkNodeList(Project project) {
  53. this.project = project;
  54. }
  55. @Override
  56. public List<Node> keys() {
  57. FileObject projectDirectory = project.getProjectDirectory();
  58. List<Node> result = new ArrayList<Node>();
  59. try {
  60. FileObject work = projectDirectory.getFileObject("current.xyz");
  61. result.add(DataObject.find(work).getNodeDelegate());
  62. for(int i = 0; i <= 9; i++)
  63. {
  64. FileObject log = projectDirectory.getFileObject("logfile_0" + i + ".txt");
  65. FileObject data = projectDirectory.getFileObject("wudata_0" + i + ".log");
  66. if(log != null)
  67. result.add(DataObject.find(log).getNodeDelegate());
  68. if(data != null)
  69. result.add(DataObject.find(data).getNodeDelegate());
  70. }
  71. } catch (DataObjectNotFoundException ex) {
  72. Exceptions.printStackTrace(ex);
  73. }
  74. return result;
  75. }
  76. @Override
  77. public void addChangeListener(ChangeListener l) {}
  78. @Override
  79. public void removeChangeListener(ChangeListener l) {}
  80. @Override
  81. public Node node(Node key) {
  82. return new FilterNode(key);
  83. }
  84. @Override
  85. public void addNotify() {}
  86. @Override
  87. public void removeNotify() {}
  88. }
  89. }