alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

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.openide.cookies;

import java.io.IOException;

import javax.swing.text.StyledDocument;
import org.openide.util.Task;

/** Cookie defining standard operations with a text document and
* an editor that can display it.
* The cookie extends LineCookie
* because all implementations of editors should support access
* by lines.
* 

* The cookie provides interfaces for opening the file, closing the editor, * background loading, saving of the document, and notification of modification. *

Warning: it is not guaranteed that the document * returned from this cookie will persist for the full lifetime of the * cookie. That is, if the editor window is closed and then reopened, * it is possible for the document to change. * The {@link EditorCookie.Observable} allows listening to * changes of the state of the document. You should do this * if you are listening to changes in the document itself, as otherwise * you would get no notifications from a reopened document. * * @author Jaroslav Tulach */ public interface EditorCookie extends LineCookie { /** Instructs an editor to be opened. The operation can * return immediately and the editor may be opened later. * There can be more than one editor open, so one of them should be * arbitrarily chosen and selected (typically given focus). */ public void open (); /** Closes all opened editors (if the user agrees) and * flushes content of the document to file. * * @return false if the operation has been cancelled */ public boolean close (); /** Should load the document into memory. This is done * in a different thread. A task for the thread is returned * so other components can test whether the loading is finished or not. *

Note that this does not involve opening the actual Editor window. * For that, use {@link #open}. * * @return task for control over the loading process */ public Task prepareDocument (); /** Get the document (and wait). * See the {@link org.openide.text Editor API} for details on how this document should behave. *

* If the document is not yet loaded the method blocks until * it is. *

Note that this does not involve opening the actual Editor window. * For that, use {@link #open}. * * @return the styled document for this cookie * @exception IOException if the document could not be loaded */ public StyledDocument openDocument () throws IOException; /** Get the document (but do not block). *

Note that this does not involve opening the actual Editor window. * For that, use {@link #open}. * * @return the document, or null if it has not yet been loaded */ public StyledDocument getDocument (); /** Save the document. * This is done in the current thread. * @exception IOException on I/O error */ public void saveDocument () throws IOException; /** Test whether the document is modified. * @return true if the document is in memory and is modified; false otherwise */ public boolean isModified (); /** Get a list of all editor panes opened on this object. * The first item in the array should represent the component * that is currently selected or that was most recently selected. * (Typically, multiple panes will only be open as a result of cloning the editor component.) * *

The resulting panes are useful for a range of tasks; * most commonly, getting the current cursor position or text selection, * including the Caret object. *

This method may also be used to test whether an object is already open * in an editor, without actually opening it. * * @return an array of panes, or null if no pane is open from this file. * In no case is an empty array returned. */ public javax.swing.JEditorPane[] getOpenedPanes (); /** The interface extends EditorCookie and allows observing changes * in state of the text document. * * @since 3.40 */ interface Observable extends EditorCookie { /** This property is fired when the result of {@link #getDocument} * has changed. Typically it is after closing the editor. */ public static final String PROP_DOCUMENT = "document"; /** This property is fired when modified state of the document * has changed. See {@link #isModified}. */ public static final String PROP_MODIFIED = "modified"; /** This property is fired when list of opened panes for the document * has changed. See {@link #getOpenedPanes}. */ public static final String PROP_OPENED_PANES = "openedPanes"; /** Add a PropertyChangeListener to the listener list. * @param l the PropertyChangeListener to be added */ void addPropertyChangeListener(java.beans.PropertyChangeListener l); /** Remove a PropertyChangeListener from the listener list. * @param l the PropertyChangeListener to be removed */ void removePropertyChangeListener(java.beans.PropertyChangeListener l); } }

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

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.