|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.css.actions; import java.awt.datatransfer.StringSelection; import java.net.*; import org.openide.*; import org.openide.awt.StatusDisplayer; import org.openide.nodes.Node; import org.openide.util.*; import org.openide.util.datatransfer.ExClipboard; import org.openide.util.actions.*; import org.openide.filesystems.*; import org.netbeans.modules.css.*; /** * Action that put XML style processing instruction in clipboard. * TODO add PI flavor. * * @author Petr Kuzel */ public abstract class CopyStyleAction extends CookieAction { protected static final String comment = Util.THIS.getString("Style-Comment") + "\n"; // NOI18N /** Serial Version UID */ private static final long serialVersionUID = -6638807099960633334L; /** What triggers me? * @return MODE_EXACTLY_ONE. */ public int mode() { return MODE_EXACTLY_ONE; } /** What triggers me? * @return {CSSObject.class} */ public Class[] cookieClasses() { return new Class[] {CSSObject.class}; } /** Action. */ protected void performAction(final Node[] nodes) { if (nodes.length != 1) return; if (nodes[0] == null) return; CSSObject csso = (CSSObject) nodes[0].getCookie(CSSObject.class); if (csso != null) { String pi = createText(csso); StringSelection ss = new StringSelection(pi); ExClipboard clipboard = (ExClipboard) Lookup.getDefault().lookup(ExClipboard.class); clipboard.setContents(ss, null); StatusDisplayer.getDefault().setStatusText(Util.THIS.getString("MSG_Style_tag_in_clipboard")); // NOI18N } } /** A method that creates particular clipboard text. * @return text to be placed to clip board. */ protected abstract String createText(CSSObject node); /** Get help context for the action. */ public HelpCtx getHelpCtx() { return new HelpCtx(getClass()); } /** Converts CSS fileobject to its href that is valid during IDE runtime. */ protected String getHref(FileObject fo) { URL u = URLMapper.findURL(fo, URLMapper.NETWORK); if (u != null) { return u.toExternalForm(); } else { return fo.getPath(); } } /** Produces XML PI text. */ public final static class XML extends CopyStyleAction { /** Serial Version UID */ private static final long serialVersionUID = -6638807099960633335L; protected String createText(CSSObject csso) { return comment + ""; // NOI18N } public String getName() { return Util.THIS.getString("Copy-XML-Style"); // NOI18N } } /** Produces HTML style text. */ public final static class HTML extends CopyStyleAction { /** Serial Version UID */ private static final long serialVersionUID = -6638807099960633336L; protected String createText(CSSObject csso) { return comment + ""; // NOI18N } public String getName() { return Util.THIS.getString("Copy-HTML-Style"); // NOI18N } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.