1 19 20 package org.netbeans.modules.ruby.railsprojects.ui.customizer; 21 22 import java.util.List ; 23 import java.util.ResourceBundle ; 24 import javax.swing.JComponent ; 25 import javax.swing.JPanel ; 26 import org.netbeans.api.project.Project; 27 import org.netbeans.spi.project.ui.support.ProjectCustomizer; 28 import org.openide.util.Lookup; 29 import org.openide.util.NbBundle; 30 31 35 public class RailsCompositePanelProvider implements ProjectCustomizer.CompositeCategoryProvider { 36 37 private static final String BUILD = "Build"; 38 public static final String RUN = "Run"; 39 40 private String name; 41 42 43 public RailsCompositePanelProvider(String name) { 44 this.name = name; 45 } 46 47 public ProjectCustomizer.Category createCategory(Lookup context) { 48 ResourceBundle bundle = NbBundle.getBundle( CustomizerProviderImpl.class ); 49 ProjectCustomizer.Category toReturn = null; 50 if (BUILD.equals(name)) { 51 toReturn = ProjectCustomizer.Category.create( 52 BUILD, 53 bundle.getString( "LBL_Config_Build" ), null, 55 (ProjectCustomizer.Category[])null); 56 } else if (RUN.equals(name)) { 57 toReturn = ProjectCustomizer.Category.create( 58 RUN, 59 bundle.getString( "LBL_Config_Run" ), null, 61 (ProjectCustomizer.Category[])null); 62 } 63 assert toReturn != null : "No category for name:" + name; 64 return toReturn; 65 } 66 67 public JComponent createComponent(ProjectCustomizer.Category category, Lookup context) { 68 String nm = category.getName(); 69 RailsProjectProperties uiProps = (RailsProjectProperties)context.lookup(RailsProjectProperties.class); 70 if (BUILD.equals(nm)) { 71 return new CustomizerCompile(uiProps); 72 } else if (RUN.equals(nm)) { 73 return new CustomizerRun(uiProps); 74 } 75 return new JPanel (); 76 77 } 78 79 public static RailsCompositePanelProvider createBuild() { 80 return new RailsCompositePanelProvider(BUILD); 81 } 82 83 public static RailsCompositePanelProvider createRun() { 84 return new RailsCompositePanelProvider(RUN); 85 } 86 } 87 | Popular Tags |