1.1 --- a/visualweb.project.jsfloader/src/org/netbeans/modules/visualweb/project/jsfloader/JsfJavaDataObject.java Tue Oct 16 22:06:59 2007 +0000
1.2 +++ b/visualweb.project.jsfloader/src/org/netbeans/modules/visualweb/project/jsfloader/JsfJavaDataObject.java Tue Oct 16 22:46:20 2007 +0000
1.3 @@ -56,10 +56,13 @@
1.4 import org.openide.loaders.DataObjectNotFoundException;
1.5 import org.openide.loaders.MultiDataObject;
1.6 import org.openide.nodes.Node;
1.7 +import org.openide.nodes.Node.Cookie;
1.8 import org.openide.util.HelpCtx;
1.9
1.10 import org.netbeans.modules.visualweb.api.insync.JsfJavaDataObjectMarker;
1.11 import org.netbeans.modules.visualweb.project.jsf.api.JsfDataObjectException;
1.12 +import org.openide.cookies.EditorCookie;
1.13 +import org.openide.nodes.CookieSet;
1.14 import org.openide.util.Lookup;
1.15
1.16
1.17 @@ -68,14 +71,19 @@
1.18 *
1.19 * @author Peter Zavadsky
1.20 */
1.21 -public class JsfJavaDataObject extends MultiDataObject implements JsfJavaDataObjectMarker {
1.22 +public class JsfJavaDataObject extends MultiDataObject implements JsfJavaDataObjectMarker, CookieSet.Factory {
1.23
1.24
1.25 static final long serialVersionUID =8354927561693097159L;
1.26 static final String JSF_ATTRIBUTE = "jsfjava"; // NOI18N
1.27 -
1.28 +
1.29 public JsfJavaDataObject(FileObject pf, JsfJavaDataLoader loader) throws DataObjectExistsException {
1.30 super(pf, loader);
1.31 +
1.32 + CookieSet set = getCookieSet();
1.33 + set.add(OpenCookie.class, this);
1.34 + set.add(EditCookie.class, this);
1.35 + set.add(EditorCookie.class, this);
1.36 }
1.37
1.38 /** Gets the superclass cookie, without hacking save cookie. */
1.39 @@ -87,6 +95,7 @@
1.40
1.41 /** Overrides behaviour to provide compound save cookie. */
1.42 @Override
1.43 + @SuppressWarnings(value ="unchecked")
1.44 public Node.Cookie getCookie(Class clazz) {
1.45 if(clazz == SaveCookie.class){
1.46 FileObject primaryJsfFileObject = Utils.findJspForJava(getPrimaryFile());
1.47 @@ -106,18 +115,27 @@
1.48 return new CompoundSaveCookie(javaSaveCookie, jspSaveCookie);
1.49 }
1.50 }
1.51 - }else if (OpenCookie.class.equals(clazz) || EditCookie.class.equals(clazz)) {
1.52 - if (openEdit == null)
1.53 - openEdit = new OpenEdit();
1.54 -
1.55 - return openEdit;
1.56 }else if (clazz.isAssignableFrom(JsfJavaEditorSupport.class)) {
1.57 return getJsfJavaEditorSupport();
1.58 - }
1.59 + }
1.60
1.61 return super.getCookie(clazz);
1.62 }
1.63
1.64 + public <T extends Cookie> T createCookie(Class<T> klass) {
1.65 + if (OpenCookie.class.equals(klass) || EditCookie.class.equals(klass)) {
1.66 + if (openEdit == null) {
1.67 + openEdit = new OpenEdit();
1.68 + }
1.69 + return klass.cast(openEdit);
1.70 + }else if (EditorCookie.class.equals(klass)) {
1.71 + return klass.cast(getJsfJavaEditorSupport());
1.72 + }else {
1.73 + return null;
1.74 + }
1.75 + }
1.76 +
1.77 +
1.78 /** Hacking access to be able to add the save cookie, see the JsfJavaEditorSupport. */
1.79 void addSaveCookie(SaveCookie save) {
1.80 getCookieSet().add(save);
1.81 @@ -242,7 +260,6 @@
1.82 getJsfJavaEditorSupport().open();
1.83 }
1.84 }
1.85 -
1.86 // </rave>
1.87 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.88 }