1 19 20 package org.netbeans.bluej; 21 22 import java.awt.Dialog ; 23 import java.awt.event.ActionEvent ; 24 import java.awt.event.ActionListener ; 25 import java.awt.event.WindowAdapter ; 26 import java.awt.event.WindowEvent ; 27 import java.text.MessageFormat ; 28 import javax.swing.JComponent ; 29 import org.netbeans.api.project.Project; 30 import org.netbeans.api.project.ProjectUtils; 31 import org.netbeans.spi.project.support.ant.PropertyEvaluator; 32 import org.netbeans.spi.project.ui.CustomizerProvider; 33 import org.netbeans.spi.project.ui.support.ProjectCustomizer; 34 import org.netbeans.spi.project.ui.support.ProjectCustomizer.CategoryComponentProvider; 35 import org.openide.util.NbBundle; 36 37 41 public class CustomizerProviderImpl implements CustomizerProvider { 42 private BluejProject project; 43 44 private UpdateHelper updateHelper; 45 46 private PropertyEvaluator evaluator; 47 48 public CustomizerProviderImpl(BluejProject proj, PropertyEvaluator eval, UpdateHelper helper) { 49 project = proj; 50 updateHelper = helper; 51 evaluator = eval; 52 } 53 54 public void showCustomizer() { 55 56 ProjectCustomizer.Category runCat = ProjectCustomizer.Category.create("run", "Run", null, null); 57 BluejProjectProperties props = new BluejProjectProperties(project, updateHelper, evaluator); 58 CategoryComponentProvider provider = new SubCategoryProvider(props); 59 OptionListener listener = new OptionListener(project, props); 60 Dialog dialog = ProjectCustomizer.createCustomizerDialog(new ProjectCustomizer.Category[] {runCat}, provider, null, listener, null); 61 dialog.addWindowListener( listener ); 64 dialog.setTitle( MessageFormat.format( 65 NbBundle.getMessage( CustomizerProviderImpl.class, "LBL_Customizer_Title" ), new Object [] { ProjectUtils.getInformation(project).getDisplayName() } ) ); 67 dialog.setVisible(true); 69 70 } 71 72 73 74 75 private class OptionListener extends WindowAdapter implements ActionListener { 76 77 private Project project; 78 private BluejProjectProperties uiProperties; 79 private Dialog dialog; 80 81 OptionListener( Project project, BluejProjectProperties uiProperties ) { 82 this.project = project; 83 this.uiProperties = uiProperties; 84 } 85 86 public void setDialog(Dialog dial) { 87 dialog = dial; 88 } 89 90 92 public void actionPerformed( ActionEvent e ) { 93 uiProperties.save(); 95 96 if ( dialog != null ) { 98 dialog.setVisible(false); 99 dialog.dispose(); 100 } 101 } 102 103 105 public void windowClosed( WindowEvent e) { 106 } 107 108 public void windowClosing(WindowEvent e) { 109 if ( dialog != null ) { 112 dialog.setVisible(false); 113 dialog.dispose(); 114 } 115 } 116 } 117 118 static final class SubCategoryProvider implements ProjectCustomizer.CategoryComponentProvider { 119 120 private BluejProjectProperties properties; 121 122 123 SubCategoryProvider(BluejProjectProperties props) { 124 properties = props; 125 } 126 127 public JComponent create(ProjectCustomizer.Category category) { 128 return new CustomizerRun(properties); 129 } 130 } 131 132 } 133 | Popular Tags |