KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > apisupport > project > ui > customizer > CustomizerProviderImpl


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.apisupport.project.ui.customizer;
21
22 import java.io.IOException JavaDoc;
23 import org.netbeans.api.project.Project;
24 import org.netbeans.modules.apisupport.project.NbModuleProject;
25 import org.netbeans.modules.apisupport.project.spi.NbModuleProvider;
26 import org.netbeans.modules.apisupport.project.SuiteProvider;
27 import org.netbeans.modules.apisupport.project.Util;
28 import org.netbeans.modules.apisupport.project.universe.LocalizedBundleInfo;
29 import org.netbeans.spi.project.support.ant.AntProjectHelper;
30 import org.netbeans.spi.project.support.ant.PropertyEvaluator;
31 import org.openide.util.Lookup;
32 import org.openide.util.lookup.Lookups;
33
34 /**
35  * Adding ability for a NetBeans modules to provide a GUI customizer.
36  *
37  * @author Martin Krauskopf
38  */

39 public final class CustomizerProviderImpl extends BasicCustomizer {
40     
41     // Programmatic names of categories
42
static final String JavaDoc CATEGORY_SOURCES = "Sources"; // NOI18N
43
static final String JavaDoc CATEGORY_DISPLAY = "Display"; // NOI18N
44
static final String JavaDoc CATEGORY_LIBRARIES = "Libraries"; // NOI18N
45
public static final String JavaDoc CATEGORY_VERSIONING = "Versioning"; // NOI18N
46
public static final String JavaDoc SUBCATEGORY_VERSIONING_PUBLIC_PACKAGES = "publicPackages"; // NOI18N
47
static final String JavaDoc CATEGORY_BUILD = "Build"; // NOI18N
48
static final String JavaDoc CATEGORY_COMPILING = "Compiling"; // NOI18N
49
static final String JavaDoc CATEGORY_PACKAGING = "Packaging"; // NOI18N
50

51     private final AntProjectHelper helper;
52     private final PropertyEvaluator evaluator;
53     
54     private SingleModuleProperties moduleProps;
55     
56     public CustomizerProviderImpl(final Project project, final AntProjectHelper helper,
57             final PropertyEvaluator evaluator) {
58         super(project, "Projects/org-netbeans-modules-apisupport-project/Customizer");
59         this.helper = helper;
60         this.evaluator = evaluator;
61     }
62     
63     void storeProperties() throws IOException JavaDoc {
64         moduleProps.triggerLazyStorages();
65         moduleProps.storeProperties();
66     }
67     
68     void postSave() throws IOException JavaDoc {
69         if (moduleProps.isModuleListRefreshNeeded()) {
70             moduleProps.getModuleList().refresh();
71             moduleProps.setModuleListRefreshNeeded(false);
72         }
73     }
74     
75     void dialogCleanup() {
76         moduleProps = null;
77     }
78     
79     protected Lookup prepareData() {
80         Lookup lookup = getProject().getLookup();
81         SuiteProvider sp = (SuiteProvider) lookup.lookup(SuiteProvider.class);
82         NbModuleProvider.NbModuleType type = Util.getModuleType((NbModuleProject) getProject());
83         moduleProps = new SingleModuleProperties(helper, evaluator, sp, type,
84                     (LocalizedBundleInfo.Provider) lookup.lookup(LocalizedBundleInfo.Provider.class));
85         return Lookups.fixed(moduleProps, getProject());
86     }
87 }
88
Popular Tags