站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > NetBeans API Javadoc (Current Development Version)

BaseKit (Editor Library) - NetBeans API Javadoc (Current Development Version)

org.netbeans.modules.editor.lib/1 1.14.0 3

org.netbeans.editor
Class BaseKit

java.lang.Object
  extended by javax.swing.text.EditorKit
      extended by javax.swing.text.DefaultEditorKit
          extended by org.netbeans.editor.BaseKit
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
ExtKit

public class BaseKit
extends DefaultEditorKit

Editor kit implementation for base document

See Also:
Serialized Form

Nested Class Summary
static class BaseKit.BackwardAction
           
static class BaseKit.BeepAction
           
static class BaseKit.BeginAction
           
static class BaseKit.BeginLineAction
           
static class BaseKit.BeginWordAction
           
static class BaseKit.CompoundAction
          Compound action that encapsulates several actions
static class BaseKit.CopyAction
           
static class BaseKit.CutAction
           
static class BaseKit.DefaultKeyTypedAction
          Default typed action
static class BaseKit.DeleteCharAction
          Remove previous or next character
static class BaseKit.DownAction
           
static class BaseKit.EndAction
           
static class BaseKit.EndLineAction
           
static class BaseKit.EndWordAction
           
static class BaseKit.ForwardAction
           
static class BaseKit.InsertBreakAction
           
static class BaseKit.InsertContentAction
           
static class BaseKit.InsertStringAction
          Insert text specified in constructor
static class BaseKit.InsertTabAction
           
static class BaseKit.KitCompoundAction
          Compound action that gets and executes its actions depending on the kit of the component.
static class BaseKit.NextWordAction
           
static class BaseKit.PageDownAction
          Go one page down
static class BaseKit.PageUpAction
          Go one page up
static class BaseKit.PasteAction
           
static class BaseKit.PreviousWordAction
           
static class BaseKit.ReadOnlyAction
           
static class BaseKit.RemoveTrailingSpacesAction
           
static class BaseKit.SelectAllAction
          Select text of whole document
static class BaseKit.SelectLineAction
          Select line around caret
static class BaseKit.SelectWordAction
          Select word around caret
static class BaseKit.SplitLineAction
           
static class BaseKit.UpAction
           
static class BaseKit.WritableAction
           
 
Field Summary
static String abbrevExpandAction
          Expand the abbreviation
static String abbrevResetAction
          Reset the abbreviation accounting string
static String adjustCaretBottomAction
          Action that moves the caret so that caret is at the bottom of the window
static String adjustCaretCenterAction
          Action that moves the caret so that caret is at the center of the window
static String adjustCaretTopAction
          Action that moves the caret so that caret is at the top of the window
static String adjustWindowBottomAction
          Action that scrolls the window so that caret is at the bottom of the window
static String adjustWindowCenterAction
          Action that scrolls the window so that caret is at the center of the window
static String adjustWindowTopAction
          Action that scrolls the window so that caret is at the top of the window
static String annotationsCyclingAction
          Cycle through annotations on the current line
static String collapseAllFoldsAction
          Collapse all existing folds in the document.
static String collapseFoldAction
          Collapse a fold.
static String cutToLineBeginAction
          Cut text from caret position to line begining action.
static String cutToLineEndAction
          Cut text from caret position to line end action.
static String DOC_REPLACE_SELECTION_PROPERTY
           
static String expandAllFoldsAction
          Expand all existing folds in the document.
static String expandFoldAction
          Expand a fold.
static String findNextAction
          Find next occurence action
static String findPreviousAction
          Find previous occurence action
static String findSelectionAction
          Find current word
static String firstNonWhiteAction
          First non-white character on the line
static String formatAction
          Format part of the document text using Indent
static String generateGutterPopupAction
          Name of the action for generating of Glyph Gutter popup menu
static String insertDateTimeAction
          Insert the current Date and Time
static String jumpListNextAction
          Go to the previous position stored in the jump-list
static String jumpListNextComponentAction
          Go to the last position in the previous component stored in the jump-list
static String jumpListPrevAction
          Go to the next position stored in the jump-list
static String jumpListPrevComponentAction
          Go to the next position in the previous component stored in the jump-list
static String lastNonWhiteAction
          Last non-white character on the line
static String lineFirstColumnAction
          Name of the action moving caret to the first column on the line
static String macroActionPrefix
          Prefix of all macro-based actions
static int MAGIC_POSITION_MAX
           
static String pasteFormatedAction
          Paste and reformat code
static String redoAction
          Redo action
static String reindentLineAction
          Reindent Line action
static String removeLineAction
          Remove line
static String removeLineBeginAction
          Remove to the begining of the line
static String removeNextWordAction
          Remove characters to the end of the word or the next word if caret is not directly at word
static String removePreviousWordAction
          Remove characters to the begining of the word or the previous word if caret is not directly at word
static String removeSelectionAction
          Remove selected block or do nothing - useful for popup menu
static String removeTabAction
          Remove indentation
static String removeTrailingSpacesAction
          Remove all trailing spaces in the document.
static String scrollDownAction
          Scroll window one line down
static String scrollUpAction
          Scroll window one line up
static String selectIdentifierAction
          Select the nearest identifier around caret
static String selectionFirstNonWhiteAction
          First non-white character on the line
static String selectionLastNonWhiteAction
          Last non-white character on the line
static String selectionLineFirstColumnAction
          Name of the action moving caret to the first column on the line and extending the selection
static String selectionPageDownAction
          Move one page down and make or extend selection
static String selectionPageUpAction
          Move one page up and make or extend selection
static String selectNextParameterAction
          Select the next parameter (after the comma) in the given context
static String shiftLineLeftAction
          Shift line left action
static String shiftLineRightAction
          Shift line right action
static String splitLineAction
          split the current line at cursor position
static String startMacroRecordingAction
          Start recording of macro.
static String startNewLineAction
          Starts a new line in code
static String stopMacroRecordingAction
          Stop the active recording
static String switchCaseAction
          Switch the case of the selected text or current character
static String toggleHighlightSearchAction
          Toggle highlight search action
static String toggleLineNumbersAction
          Toggle visibility of line numbers
static String toggleTypingModeAction
          Toggle the typing mode to overwrite mode or back to insert mode
static String toLowerCaseAction
          Change the selected text or current character to lowercase
static String toUpperCaseAction
          Change the selected text or current character to uppercase
static String undoAction
          Undo action
static String wordMatchNextAction
          Word match next
static String wordMatchPrevAction
          Word match prev
 
Fields inherited from class javax.swing.text.DefaultEditorKit
backwardAction, beepAction, beginAction, beginLineAction, beginParagraphAction, beginWordAction, copyAction, cutAction, defaultKeyTypedAction, deleteNextCharAction, deletePrevCharAction, downAction, endAction, endLineAction, EndOfLineStringProperty, endParagraphAction, endWordAction, forwardAction, insertBreakAction, insertContentAction, insertTabAction, nextWordAction, pageDownAction, pageUpAction, pasteAction, previousWordAction, readOnlyAction, selectAllAction, selectionBackwardAction, selectionBeginAction, selectionBeginLineAction, selectionBeginParagraphAction, selectionBeginWordAction, selectionDownAction, selectionEndAction, selectionEndLineAction, selectionEndParagraphAction, selectionEndWordAction, selectionForwardAction, selectionNextWordAction, selectionPreviousWordAction, selectionUpAction, selectLineAction, selectParagraphAction, selectWordAction, upAction, writableAction
 
Constructor Summary
BaseKit()
          Creates a new instance of BaseKit.
 
Method Summary
static Map actionsToMap(Action[] actions)
          Creates map with [name, action] pairs from the given array of actions.
 Object clone()
          Clone this editor kit
protected  Action[] createActions()
          Create actions that this kit supports.
 Caret createCaret()
          Create caret to navigate through document
 Document createDefaultDocument()
          Create empty document
protected  EditorUI createEditorUI()
          Create extended UI
 Syntax createFormatSyntax(Document doc)
          Create the syntax used for formatting
 Formatter createFormatter()
          Create the formatter appropriate for this kit
protected  EditorUI createPrintEditorUI(BaseDocument doc)
          Deprecated. this method is no longer being called by EditorUI. createPrintEditorUI(BaseDocument, boolean, boolean) is being called instead.
protected  EditorUI createPrintEditorUI(BaseDocument doc, boolean usePrintColoringMap, boolean lineNumberEnabled)
          Create extended UI for printing a document.
 Syntax createSyntax(Document doc)
          Create new instance of syntax coloring scanner
 SyntaxSupport createSyntaxSupport(BaseDocument doc)
          Create syntax support
protected  BaseTextUI createTextUI()
          Create text UI
 void deinstall(JEditorPane c)
           
protected  void executeDeinstallActions(JEditorPane c)
           
protected  void executeInstallActions(JEditorPane c)
           
 Action getActionByName(String name)
          Get action from its name.
 Action[] getActions()
          Get actions associated with this kit.
protected  Action[] getCustomActions()
           
 MultiKeymap getKeymap()
           
static BaseKit getKit(Class kitClass)
          Deprecated. Use CloneableEditorSupport.getEditorKit or MimeLookup instead to find EditorKit for a mime type.
protected  Action[] getMacroActions()
           
 ViewFactory getViewFactory()
          Fetches a factory that is suitable for producing views of any models that are produced by this kit.
protected  void initDocument(BaseDocument doc)
          Initialize document by adding the draw-layers for example.
 void install(JEditorPane c)
          Called after the kit is installed into JEditorPane
static Action[] mapToActions(Map map)
          Converts map with [name, action] back to array of actions.
 void read(Reader in, Document doc, int pos)
          Inserts content from the given stream.
 List translateActionNameList(List actionNameList)
           
protected  void updateActions()
          Update the actions right after their creation was finished.
 void write(Writer out, Document doc, int pos, int len)
          Writes content from a document to the given stream
 
Methods inherited from class javax.swing.text.DefaultEditorKit
getContentType, read, write
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

splitLineAction

public static final String splitLineAction
split the current line at cursor position

See Also:
Constant Field Values

annotationsCyclingAction

public static final String annotationsCyclingAction
Cycle through annotations on the current line

See Also:
Constant Field Values

collapseFoldAction

public static final String collapseFoldAction
Collapse a fold. Depends on the current caret position.

See Also:
Constant Field Values

expandFoldAction

public static final String expandFoldAction
Expand a fold. Depends on the current caret position.

See Also:
Constant Field Values

collapseAllFoldsAction

public static final String collapseAllFoldsAction
Collapse all existing folds in the document.

See Also:
Constant Field Values

expandAllFoldsAction

public static final String expandAllFoldsAction
Expand all existing folds in the document.

See Also:
Constant Field Values

selectionPageUpAction

public static final String selectionPageUpAction
Move one page up and make or extend selection

See Also:
Constant Field Values

selectionPageDownAction

public static final String selectionPageDownAction
Move one page down and make or extend selection

See Also:
Constant Field Values

removeTabAction

public static final String removeTabAction
Remove indentation

See Also:
Constant Field Values

removeSelectionAction

public static final String removeSelectionAction
Remove selected block or do nothing - useful for popup menu

See Also:
Constant Field Values

abbrevExpandAction

public static final String abbrevExpandAction
Expand the abbreviation

See Also:
Constant Field Values

abbrevResetAction

public static final String abbrevResetAction
Reset the abbreviation accounting string

See Also:
Constant Field Values

removePreviousWordAction

public static final String removePreviousWordAction
Remove characters to the begining of the word or the previous word if caret is not directly at word

See Also:
Constant Field Values

removeNextWordAction

public static final String removeNextWordAction
Remove characters to the end of the word or the next word if caret is not directly at word

See Also:
Constant Field Values

removeLineBeginAction

public static final String removeLineBeginAction
Remove to the begining of the line

See Also:
Constant Field Values

removeLineAction

public static final String removeLineAction
Remove line

See Also:
Constant Field Values

toggleTypingModeAction

public static final String toggleTypingModeAction
Toggle the typing mode to overwrite mode or back to insert mode

See Also:
Constant Field Values

toUpperCaseAction

public static final String toUpperCaseAction
Change the selected text or current character to uppercase

See Also:
Constant Field Values

toLowerCaseAction

public static final String toLowerCaseAction
Change the selected text or current character to lowercase

See Also:
Constant Field Values

switchCaseAction

public static final String switchCaseAction
Switch the case of the selected text or current character

See Also:
Constant Field Values

findNextAction

public static final String findNextAction
Find next occurence action

See Also:
Constant Field Values

findPreviousAction

public static final String findPreviousAction
Find previous occurence action

See Also:
Constant Field Values

toggleHighlightSearchAction

public static final String toggleHighlightSearchAction
Toggle highlight search action

See Also:
Constant Field Values

findSelectionAction

public static final String findSelectionAction
Find current word

See Also:
Constant Field Values

undoAction

public static final String undoAction
Undo action

See Also:
Constant Field Values

redoAction

public static final String redoAction
Redo action

See Also:
Constant Field Values

wordMatchNextAction

public static final String wordMatchNextAction
Word match next

See Also:
Constant Field Values

wordMatchPrevAction

public static final String wordMatchPrevAction
Word match prev

See Also:
Constant Field Values

reindentLineAction

public static final String reindentLineAction
Reindent Line action

See Also:
Constant Field Values

shiftLineRightAction

public static final String shiftLineRightAction
Shift line right action

See Also:
Constant Field Values

shiftLineLeftAction

public static final String shiftLineLeftAction
Shift line left action

See Also:
Constant Field Values

adjustWindowCenterAction

public static final String adjustWindowCenterAction
Action that scrolls the window so that caret is at the center of the window

See Also:
Constant Field Values

adjustWindowTopAction

public static final String adjustWindowTopAction
Action that scrolls the window so that caret is at the top of the window

See Also:
Constant Field Values

adjustWindowBottomAction

public static final String adjustWindowBottomAction
Action that scrolls the window so that caret is at the bottom of the window

See Also:
Constant Field Values

adjustCaretCenterAction

public static final String adjustCaretCenterAction
Action that moves the caret so that caret is at the center of the window

See Also:
Constant Field Values

adjustCaretTopAction

public static final String adjustCaretTopAction
Action that moves the caret so that caret is at the top of the window

See Also:
Constant Field Values

adjustCaretBottomAction

public static final String adjustCaretBottomAction
Action that moves the caret so that caret is at the bottom of the window

See Also:
Constant Field Values

formatAction

public static final String formatAction
Format part of the document text using Indent

See Also:
Constant Field Values

firstNonWhiteAction

public static final String firstNonWhiteAction
First non-white character on the line

See Also:
Constant Field Values

lastNonWhiteAction

public static final String lastNonWhiteAction
Last non-white character on the line

See Also:
Constant Field Values

selectionFirstNonWhiteAction

public static final String selectionFirstNonWhiteAction
First non-white character on the line

See Also:
Constant Field Values

selectionLastNonWhiteAction

public static final String selectionLastNonWhiteAction
Last non-white character on the line

See Also:
Constant Field Values

selectIdentifierAction

public static final String selectIdentifierAction
Select the nearest identifier around caret

See Also:
Constant Field Values

selectNextParameterAction

public static final String selectNextParameterAction
Select the next parameter (after the comma) in the given context

See Also:
Constant Field Values

jumpListNextAction

public static final String jumpListNextAction
Go to the previous position stored in the jump-list

See Also:
Constant Field Values

jumpListPrevAction

public static final String jumpListPrevAction
Go to the next position stored in the jump-list

See Also:
Constant Field Values

jumpListNextComponentAction

public static final String jumpListNextComponentAction
Go to the last position in the previous component stored in the jump-list

See Also:
Constant Field Values

jumpListPrevComponentAction

public static final String jumpListPrevComponentAction
Go to the next position in the previous component stored in the jump-list

See Also:
Constant Field Values

scrollUpAction

public static final String scrollUpAction
Scroll window one line up

See Also:
Constant Field Values

scrollDownAction

public static final String scrollDownAction
Scroll window one line down

See Also:
Constant Field Values

macroActionPrefix

public static final String macroActionPrefix
Prefix of all macro-based actions

See Also:
Constant Field Values

startMacroRecordingAction

public static final String startMacroRecordingAction
Start recording of macro. Only one macro recording can be active at the time

See Also:
Constant Field Values

stopMacroRecordingAction

public static final String stopMacroRecordingAction
Stop the active recording

See Also:
Constant Field Values

lineFirstColumnAction

public static final String lineFirstColumnAction
Name of the action moving caret to the first column on the line

See Also:
Constant Field Values

insertDateTimeAction

public static final String insertDateTimeAction
Insert the current Date and Time

See Also:
Constant Field Values

selectionLineFirstColumnAction

public static final String selectionLineFirstColumnAction
Name of the action moving caret to the first column on the line and extending the selection

See Also:
Constant Field Values

generateGutterPopupAction

public static final String generateGutterPopupAction
Name of the action for generating of Glyph Gutter popup menu

See Also:
Constant Field Values

toggleLineNumbersAction

public static final String toggleLineNumbersAction
Toggle visibility of line numbers

See Also:
Constant Field Values

pasteFormatedAction

public static final String pasteFormatedAction
Paste and reformat code

See Also:
Constant Field Values

startNewLineAction

public static final String startNewLineAction
Starts a new line in code

See Also:
Constant Field Values

cutToLineBeginAction

public static final String cutToLineBeginAction
Cut text from caret position to line begining action.

See Also:
Constant Field Values

cutToLineEndAction

public static final String cutToLineEndAction
Cut text from caret position to line end action.

See Also:
Constant Field Values

removeTrailingSpacesAction

public static final String removeTrailingSpacesAction
Remove all trailing spaces in the document.

See Also:
Constant Field Values

DOC_REPLACE_SELECTION_PROPERTY

public static final String DOC_REPLACE_SELECTION_PROPERTY
See Also:
Constant Field Values

MAGIC_POSITION_MAX

public static final int MAGIC_POSITION_MAX
See Also:
Constant Field Values
Constructor Detail

BaseKit

public BaseKit()
Creates a new instance of BaseKit.

You should not need to instantiate editor kits directly under normal circumstances. There is a few ways how you can get instance of EditorKit depending on what you already have available:

  • mime type - Use CloneableEditorSupport.getEditorKit(yourMimeType) to get the EditorKit registered for your mime type or use the following code MimeLookup.getLookup(MimePath.parse(yourMimeType)).lookup(EditorKit.class) and check for null.
  • JTextComponent - Simply call JTextComponent.getUI().getEditorKit(JTextComponent) passing in the same component.

Method Detail

getKit

public static BaseKit getKit(Class kitClass)
Deprecated. Use CloneableEditorSupport.getEditorKit or MimeLookup instead to find EditorKit for a mime type.

Gets an editor kit from its implemetation class.

Please be careful when using this method and make sure that you understand how it works and what the deference is from using MimeLookup. This method simply creates an instance of BaseKit from its implementation class passed in as a parameter. It completely ignores the registry of editor kits in MimeLookup, which has severe consequences.

The usuall pattern for using editor kits is to start with a mime type of a document (ie. file) that you want to edit, then use some registry for editor kits to look up the kit for your mime type and finally set the kit in a JTextComponent, let it create a Document and load it with data. The registry can generally be anything, but in Netbeans we use MimeLookup (JDK for example uses JEditorPane.createEditorKitForContentType).

The editor kits are registered in MimeLookup for each particular mime type and the registry itself does not impose any rules on the editor kit implementations other than extending the EditorKit class. This for example means that the same implemantation of EditorKit can be used for multiple mime types. This is exactly how XML editor kit is reused for various flavors of XML documents (e.g. ant build scripts, web app descriptors, etc).

Netbeans did not always have MimeLookup and it also used a different approach for registering and retrieving editor kits. This old approach was based on implemetation classes rather than on mime types and while it is still more or less functional for the old kit implementations, it is fundamentally broken and should not be used any more. The code below demonstrates probably the biggest mistake when thinking in the old ways.

 // WARNING: The code below is a demonstration of a common mistake that
 // people do when using BaseKit.getKit.
 
 JTextComponent component = ...; // Let's say we have a component
 Class kitClass = Utilities.getKitClass(component);
 String mimeType = BaseKit.getKit(kitClass).getContentType();
 

The problem with the above code is that it blindely assumes that each kit class can be uniquely mapped to a mime type. This is not true! The same can be achieved in much easier way, which always works.

 JTextComponent component = ...; // Let's say we have a component
 String mimeType = component.getUI().getEditorKit(component).getContentType();
 

Parameters:
kitClass - An implementation class of the editor kit that should be returned. If the kitClass is not BaseKit or its subclass the instance of bare BaseKit will be returned.
Returns:
An instance of the kitClass or BaseKit.

clone

public Object clone()
Clone this editor kit

Overrides:
clone in class EditorKit

getViewFactory

public ViewFactory getViewFactory()
Fetches a factory that is suitable for producing views of any models that are produced by this kit. The default is to have the UI produce the factory, so this method has no implementation.

Overrides:
getViewFactory in class DefaultEditorKit
Returns:
the view factory

createCaret

public Caret createCaret()
Create caret to navigate through document

Overrides:
createCaret in class DefaultEditorKit

createDefaultDocument

public Document createDefaultDocument()
Create empty document

Overrides:
createDefaultDocument in class DefaultEditorKit

createSyntax

public Syntax createSyntax(Document doc)
Create new instance of syntax coloring scanner

Parameters:
doc - document to operate on. It can be null in the cases the syntax creation is not related to the particular document

createFormatSyntax

public Syntax createFormatSyntax(Document doc)
Create the syntax used for formatting


createSyntaxSupport

public SyntaxSupport createSyntaxSupport(BaseDocument doc)
Create syntax support


createFormatter

public Formatter createFormatter()
Create the formatter appropriate for this kit


createTextUI

protected BaseTextUI createTextUI()
Create text UI


createEditorUI

protected EditorUI createEditorUI()
Create extended UI


createPrintEditorUI

protected EditorUI createPrintEditorUI(BaseDocument doc)
Deprecated. this method is no longer being called by EditorUI. createPrintEditorUI(BaseDocument, boolean, boolean) is being called instead.

Create extended UI for printing a document.


createPrintEditorUI

protected EditorUI createPrintEditorUI(BaseDocument doc,
                                       boolean usePrintColoringMap,
                                       boolean lineNumberEnabled)
Create extended UI for printing a document.

Parameters:
doc - document for which the extended UI is being created.
usePrintColoringMap - use printing coloring settings instead of the regular ones.
lineNumberEnabled - if set to false the line numbers will not be printed. If set to true the visibility of line numbers depends on the settings for the line number visibility.

getKeymap

public MultiKeymap getKeymap()

read

public void read(Reader in,
                 Document doc,
                 int pos)
          throws IOException,
                 BadLocationException
Inserts content from the given stream.

Overrides:
read in class DefaultEditorKit
Throws:
IOException
BadLocationException

write

public void write(Writer out,
                  Document doc,
                  int pos,
                  int len)
           throws IOException,
                  BadLocationException
Writes content from a document to the given stream

Overrides:
write in class DefaultEditorKit
Throws:
IOException
BadLocationException

actionsToMap

public static Map actionsToMap(Action[] actions)
Creates map with [name, action] pairs from the given array of actions.


mapToActions

public static Action[] mapToActions(Map map)
Converts map with [name, action] back to array of actions.


install

public void install(JEditorPane c)
Called after the kit is installed into JEditorPane

Overrides:
install in class EditorKit

executeInstallActions

protected void executeInstallActions(JEditorPane c)

deinstall

public void deinstall(JEditorPane c)
Overrides:
deinstall in class EditorKit

executeDeinstallActions

protected void executeDeinstallActions(JEditorPane c)

initDocument

protected void initDocument(BaseDocument doc)
Initialize document by adding the draw-layers for example.


createActions

protected Action[] createActions()
Create actions that this kit supports. To use the actions of the parent kit it's better instead of using super.createActions() to use getKit(super.getClass()).getActions() because it can reuse existing parent actions.


getCustomActions

protected Action[] getCustomActions()

getMacroActions

protected Action[] getMacroActions()

getActions

public final Action[] getActions()
Get actions associated with this kit. createActions() is called to get basic list and then customActions are added.

Overrides:
getActions in class DefaultEditorKit

updateActions

protected void updateActions()
Update the actions right after their creation was finished. The getActions() and getActionByName() can be used safely in this method. The implementation must call super.updateActions() so that the updating in parent is performed too.


getActionByName

public Action getActionByName(String name)
Get action from its name.


translateActionNameList

public List translateActionNameList(List actionNameList)

org.netbeans.modules.editor.lib/1 1.14.0 3

Built on May 28 2007.  |  Portions Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.