PageRenderTime 46ms CodeModel.GetById 7ms RepoModel.GetById 0ms app.codeStats 0ms

/python.project/src/org/netbeans/modules/python/project/ui/customizer/CompositePanelProviderImpl.java

https://bitbucket.org/netbeans/main_contrib
Java | 84 lines | 64 code | 12 blank | 8 comment | 11 complexity | fd1c54f951740b34d046dedf175aa366 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, GPL-2.0, Apache-2.0, LGPL-2.1, BSD-3-Clause, BSD-3-Clause-No-Nuclear-License-2014, 0BSD
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package org.netbeans.modules.python.project.ui.customizer;
  6. import javax.swing.JComponent;
  7. import javax.swing.JPanel;
  8. import org.netbeans.spi.project.ui.support.ProjectCustomizer;
  9. import org.netbeans.spi.project.ui.support.ProjectCustomizer.CompositeCategoryProvider;
  10. import org.openide.util.Lookup;
  11. import org.openide.util.NbBundle;
  12. /**
  13. *
  14. * @author Tomas Zezula
  15. */
  16. public class CompositePanelProviderImpl implements CompositeCategoryProvider {
  17. public static final String SOURCES = "Sources"; // NOI18N
  18. public static final String PYTHON_PATH = "PythonPath"; //NOI18N
  19. public static final String RUN = "Run"; // NOI18N
  20. private final String name;
  21. public CompositePanelProviderImpl(String name) {
  22. this.name = name;
  23. }
  24. @Override
  25. public ProjectCustomizer.Category createCategory(Lookup context) {
  26. ProjectCustomizer.Category toReturn = null;
  27. final ProjectCustomizer.Category[] categories = null;
  28. if (SOURCES.equals(name)) {
  29. toReturn = ProjectCustomizer.Category.create(
  30. SOURCES,
  31. NbBundle.getMessage(CompositePanelProviderImpl.class, "LBL_Config_Sources"),
  32. null,
  33. categories);
  34. } else if (RUN.equals(name)) {
  35. toReturn = ProjectCustomizer.Category.create(
  36. RUN,
  37. NbBundle.getMessage(CompositePanelProviderImpl.class, "LBL_Config_RunConfig"),
  38. null,
  39. categories);
  40. } else if (PYTHON_PATH.equals(name)) {
  41. toReturn = ProjectCustomizer.Category.create(
  42. PYTHON_PATH,
  43. NbBundle.getMessage(CompositePanelProviderImpl.class, "LBL_Config_PhpIncludePath"),
  44. null,
  45. categories);
  46. }
  47. assert toReturn != null : "No category for name: " + name;
  48. return toReturn;
  49. }
  50. @Override
  51. public JComponent createComponent(ProjectCustomizer.Category category, Lookup context) {
  52. String nm = category.getName();
  53. PythonProjectProperties uiProps = context.lookup(PythonProjectProperties.class);
  54. if (SOURCES.equals(nm)) {
  55. return new CustomizerSources(uiProps);
  56. } else if (RUN.equals(nm)) {
  57. return new CustomizerRun(uiProps);
  58. } else if (PYTHON_PATH.equals(nm)) {
  59. return new CustomizerPythonPath(uiProps);
  60. }
  61. return new JPanel();
  62. }
  63. public static CompositePanelProviderImpl createSources() {
  64. return new CompositePanelProviderImpl(SOURCES);
  65. }
  66. public static CompositePanelProviderImpl createRunConfig() {
  67. return new CompositePanelProviderImpl(RUN);
  68. }
  69. public static CompositePanelProviderImpl createPythonPath() {
  70. return new CompositePanelProviderImpl(PYTHON_PATH);
  71. }
  72. }