Package org.omegat.gui.editor
Class EditorController
- java.lang.Object
-
- org.omegat.gui.editor.EditorController
-
- All Implemented Interfaces:
IEditor
public class EditorController extends java.lang.Object implements IEditor
Class for control all editor operations.You can find good description of java text editor working at Using the Swing Text Package that was originally found at http://java.sun.com/products/jfc/tsc/articles/text/overview/
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.omegat.gui.editor.IEditor
IEditor.CaretPosition, IEditor.CHANGE_CASE_TO
-
-
Constructor Summary
Constructors Constructor Description EditorController(MainWindow mainWindow)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
activateEntry()
Activate entry for edit.void
activateEntry(IEditor.CaretPosition pos)
Activates the current entry (if available) by displaying source text and embedding displayed text in markers.void
changeCase(IEditor.CHANGE_CASE_TO toWhat)
Change case of the selected text or if none is selected, of the current word.void
commitAndDeactivate()
Commits the translation.void
commitAndLeave()
Commits the translation and leave entry activated.AlphabeticalMarkers
getAlphabeticalMarkers()
IAutoCompleter
getAutoCompleter()
Access the AutoCompleterSourceTextEntry
getCurrentEntry()
Get current active entry.int
getCurrentEntryNumber()
Get current active entry number.java.lang.String
getCurrentFile()
Get relative path (undersource
) of the source file currently open in the editor.int
getCurrentPositionInEntryTranslation()
Returns current caret position in the editable translation.SegmentBuilder
getCurrentSegmentBuilder()
java.lang.String
getCurrentTargetFile()
Get the relative path (undertarget
) of the target file corresponding to the current source file (perIEditor.getCurrentFile()
).java.lang.String
getCurrentTranslation()
Returns current translation or null.IEditorFilter
getFilter()
Gets a filter for this editor, or null if filter doesn't applied.Document3.ORIENTATION
getOrientation()
returns the orientation of the document (so we can decide what way of tag colouring we need; if that has been fixed in an other way, this method can be removed again.).int
getPositionInEntryTranslation(int pos)
Returns the relative caret position in the editable translation for a given absolute index into the overall editor document.java.lang.String
getSelectedText()
Get currently selected text.EditorSettings
getSettings()
Get settings instance.void
gotoEntry(int entryNum)
Goto entry with specified number.void
gotoEntry(int entryNum, IEditor.CaretPosition pos)
Goto entry with specified number, and restore caret to specified position.void
gotoEntry(java.lang.String srcString, EntryKey key)
Goto entry based on a string and entry key.void
gotoEntryAfterFix(int entryNum, java.lang.String fixedSource)
Goto entry with specified number while avoiding clobbering the tag fixes.void
gotoFile(int fileIndex)
Goto first entry in specified file.void
gotoHistoryBack()
Go to previous segment from history.void
gotoHistoryForward()
Go to next segment from history.void
insertTag(java.lang.String tag)
Inserts tag at the cursor position, probably with adding bidi control chars.void
insertText(java.lang.String text)
Inserts text at the cursor position.void
insertTextAndMark(java.lang.String text)
Inserts text at the cursor position and mark as to be changed by the translator, i.e, background of segment should be marked Must be called only from UI thread.void
markActiveEntrySource(SourceTextEntry requiredActiveEntry, java.util.List<Mark> marks, java.lang.String markerClassName)
All plugins can call this method for mark something in active entry.void
nextEntry()
Move to next entry.void
nextEntryWithNote()
Finds the next entry with a non-empty note.void
nextTranslatedEntry()
Finds the next translated entry in the document.void
nextUniqueEntry()
Find the next unique entry.void
nextUntranslatedEntry()
Finds the next untranslated entry in the document.void
nextXAutoEntry()
Finds the next/previous x-auto translated entryvoid
nextXEnforcedEntry()
Finds the next/previous x-enforced translated entryvoid
prevEntry()
Move to previous entry.void
prevEntryWithNote()
Finds the previous entry with a non-empty note.void
prevXAutoEntry()
Move to previous x-auto translated entry.void
prevXEnforcedEntry()
Move to previous x-enforced translated entry.void
redo()
Redo editing.void
refreshEntries(java.util.Set<java.lang.Integer> entryNumbers)
Refresh some entries.void
refreshView(boolean doCommit)
void
refreshViewAfterFix(java.util.List<java.lang.Integer> fixedEntries)
Refresh the current editor view while avoiding clobbering any tag fixes.void
registerEmptyTranslation()
Register as empty.void
registerIdenticalTranslation()
Register translation to be identical to source.void
registerPopupMenuConstructors(int priority, IPopupMenuConstructor constructor)
Register constructor of popup menu.void
registerUntranslated()
Register untranslated.void
remarkOneMarker(java.lang.String markerClassName)
Calls specified marker for reprocess all entries.void
removeFilter()
Removes the current filter.void
replaceEditText(java.lang.String text)
Replaces the entire edit area with a given text.void
replaceEditText(java.lang.String text, java.lang.String origin)
Replaces the entire edit area with a given text which origin is origin.void
replaceEditTextAndMark(java.lang.String text)
Inserts text at the cursor position and mark as to be changed by the translator, i.e, background of segment should be marked Must be called only from UI thread.void
replaceEditTextAndMark(java.lang.String text, java.lang.String origin)
Replace text and mark as to be changed by the translator from origin, i.e, background of segment should be marked Must be called only from UI thread.void
replacePartOfText(java.lang.String text, int start, int end)
void
requestFocus()
Set current focus to editor.void
selectSourceText()
Select the source text of the current segment.void
setAlternateTranslationForCurrentEntry(boolean alternate)
Set default/alternate translation for current entry.void
setCaretPosition(IEditor.CaretPosition pos)
void
setFilter(IEditorFilter filter)
Sets a filter to this editor.void
showStat()
Calculate statistic for file, request statistic for project and display in status bar.void
undo()
Undo editing.void
windowDeactivated()
Perform any necessary actions for window deactivation.
-
-
-
Constructor Detail
-
EditorController
public EditorController(MainWindow mainWindow)
-
-
Method Detail
-
getOrientation
public Document3.ORIENTATION getOrientation()
returns the orientation of the document (so we can decide what way of tag colouring we need; if that has been fixed in an other way, this method can be removed again.).- Returns:
-
requestFocus
public void requestFocus()
Set current focus to editor.- Specified by:
requestFocus
in interfaceIEditor
-
getCurrentEntry
public SourceTextEntry getCurrentEntry()
Get current active entry. Can be called from any thread.- Specified by:
getCurrentEntry
in interfaceIEditor
-
getCurrentSegmentBuilder
public SegmentBuilder getCurrentSegmentBuilder()
-
getCurrentFile
public java.lang.String getCurrentFile()
Get relative path (undersource
) of the source file currently open in the editor.Can be called from any thread.
- Specified by:
getCurrentFile
in interfaceIEditor
-
getCurrentTargetFile
public java.lang.String getCurrentTargetFile()
Description copied from interface:IEditor
Get the relative path (undertarget
) of the target file corresponding to the current source file (perIEditor.getCurrentFile()
). This file is what is created upon doing Create Target Documents, but it may not exist yet.Can be called from any thread.
- Specified by:
getCurrentTargetFile
in interfaceIEditor
-
activateEntry
public void activateEntry()
Description copied from interface:IEditor
Activate entry for edit. Must be called only from UI thread. Will position cursor at the start of segment- Specified by:
activateEntry
in interfaceIEditor
-
activateEntry
public void activateEntry(IEditor.CaretPosition pos)
Activates the current entry (if available) by displaying source text and embedding displayed text in markers.Also moves document focus to current entry, and makes sure fuzzy info displayed if available.
-
showStat
public void showStat()
Calculate statistic for file, request statistic for project and display in status bar.
-
refreshEntries
public void refreshEntries(java.util.Set<java.lang.Integer> entryNumbers)
Refresh some entries. Usually after external translation changes replacement.
-
commitAndDeactivate
public void commitAndDeactivate()
Commits the translation. Reads current entry text and commit it to memory if it's changed. Also clears out segment markers while we're at it.Since 1.6: Translation equal to source may be validated as OK translation if appropriate option is set in Workflow options dialog.
All displayed segments with the same source text updated also.
- Specified by:
commitAndDeactivate
in interfaceIEditor
-
commitAndLeave
public void commitAndLeave()
Commits the translation and leave entry activated. Translation will be saved. Must be called only from UI thread.- Specified by:
commitAndLeave
in interfaceIEditor
-
nextEntry
public void nextEntry()
Description copied from interface:IEditor
Move to next entry. Must be called only from UI thread.
-
prevEntry
public void prevEntry()
Description copied from interface:IEditor
Move to previous entry. Must be called only from UI thread.
-
nextUntranslatedEntry
public void nextUntranslatedEntry()
Finds the next untranslated entry in the document.- Specified by:
nextUntranslatedEntry
in interfaceIEditor
-
nextTranslatedEntry
public void nextTranslatedEntry()
Finds the next translated entry in the document.- Specified by:
nextTranslatedEntry
in interfaceIEditor
-
nextXAutoEntry
public void nextXAutoEntry()
Finds the next/previous x-auto translated entry- Specified by:
nextXAutoEntry
in interfaceIEditor
-
prevXAutoEntry
public void prevXAutoEntry()
Description copied from interface:IEditor
Move to previous x-auto translated entry. Must be called only from UI thread.- Specified by:
prevXAutoEntry
in interfaceIEditor
-
nextXEnforcedEntry
public void nextXEnforcedEntry()
Finds the next/previous x-enforced translated entry- Specified by:
nextXEnforcedEntry
in interfaceIEditor
-
prevXEnforcedEntry
public void prevXEnforcedEntry()
Description copied from interface:IEditor
Move to previous x-enforced translated entry. Must be called only from UI thread.- Specified by:
prevXEnforcedEntry
in interfaceIEditor
-
nextEntryWithNote
public void nextEntryWithNote()
Finds the next entry with a non-empty note.- Specified by:
nextEntryWithNote
in interfaceIEditor
-
prevEntryWithNote
public void prevEntryWithNote()
Finds the previous entry with a non-empty note.- Specified by:
prevEntryWithNote
in interfaceIEditor
-
nextUniqueEntry
public void nextUniqueEntry()
Find the next unique entry.- Specified by:
nextUniqueEntry
in interfaceIEditor
-
getCurrentEntryNumber
public int getCurrentEntryNumber()
Get current active entry number. Can be called from any thread.- Specified by:
getCurrentEntryNumber
in interfaceIEditor
-
gotoFile
public void gotoFile(int fileIndex)
Goto first entry in specified file.
-
gotoEntry
public void gotoEntry(int entryNum)
Goto entry with specified number. Convenience method forIEditor.gotoEntry(int, CaretPosition)
where the caret position will be the start of the entry.
-
gotoEntry
public void gotoEntry(int entryNum, IEditor.CaretPosition pos)
Description copied from interface:IEditor
Goto entry with specified number, and restore caret to specified position.
-
gotoEntry
public void gotoEntry(java.lang.String srcString, EntryKey key)
Description copied from interface:IEditor
Goto entry based on a string and entry key.
-
gotoEntryAfterFix
public void gotoEntryAfterFix(int entryNum, java.lang.String fixedSource)
Description copied from interface:IEditor
Goto entry with specified number while avoiding clobbering the tag fixes.- Specified by:
gotoEntryAfterFix
in interfaceIEditor
- Parameters:
entryNum
- entry number, starts from 1fixedSource
- The source of the entry that was fixed Must be called only from UI thread.
-
refreshViewAfterFix
public void refreshViewAfterFix(java.util.List<java.lang.Integer> fixedEntries)
Description copied from interface:IEditor
Refresh the current editor view while avoiding clobbering any tag fixes.- Specified by:
refreshViewAfterFix
in interfaceIEditor
- Parameters:
fixedEntries
- A list of all entries that were altered Must be called only from UI thread.
-
refreshView
public void refreshView(boolean doCommit)
- Specified by:
refreshView
in interfaceIEditor
-
changeCase
public void changeCase(IEditor.CHANGE_CASE_TO toWhat)
Change case of the selected text or if none is selected, of the current word.- Specified by:
changeCase
in interfaceIEditor
- Parameters:
toWhat
- : lower, title, upper or cycle
-
replaceEditText
public void replaceEditText(java.lang.String text)
Replaces the entire edit area with a given text. Must be called only from UI thread.- Specified by:
replaceEditText
in interfaceIEditor
-
replaceEditText
public void replaceEditText(java.lang.String text, java.lang.String origin)
Replaces the entire edit area with a given text which origin is origin.when manual edit and origin is unknown, origin will be null. Must be called only from UI thread.
- Specified by:
replaceEditText
in interfaceIEditor
-
replacePartOfText
public void replacePartOfText(java.lang.String text, int start, int end)
-
replaceEditTextAndMark
public void replaceEditTextAndMark(java.lang.String text, java.lang.String origin)
Replace text and mark as to be changed by the translator from origin, i.e, background of segment should be marked Must be called only from UI thread.- Specified by:
replaceEditTextAndMark
in interfaceIEditor
-
replaceEditTextAndMark
public void replaceEditTextAndMark(java.lang.String text)
Inserts text at the cursor position and mark as to be changed by the translator, i.e, background of segment should be marked Must be called only from UI thread.- Specified by:
replaceEditTextAndMark
in interfaceIEditor
-
getCurrentTranslation
public java.lang.String getCurrentTranslation()
Description copied from interface:IEditor
Returns current translation or null.- Specified by:
getCurrentTranslation
in interfaceIEditor
-
getCurrentPositionInEntryTranslation
public int getCurrentPositionInEntryTranslation()
Returns current caret position in the editable translation.
-
getPositionInEntryTranslation
public int getPositionInEntryTranslation(int pos)
Returns the relative caret position in the editable translation for a given absolute index into the overall editor document.
-
setCaretPosition
public void setCaretPosition(IEditor.CaretPosition pos)
-
insertText
public void insertText(java.lang.String text)
Inserts text at the cursor position. Must be called only from UI thread.- Specified by:
insertText
in interfaceIEditor
-
insertTextAndMark
public void insertTextAndMark(java.lang.String text)
Inserts text at the cursor position and mark as to be changed by the translator, i.e, background of segment should be marked Must be called only from UI thread.- Specified by:
insertTextAndMark
in interfaceIEditor
- Parameters:
text
- The text to insert
-
insertTag
public void insertTag(java.lang.String tag)
Inserts tag at the cursor position, probably with adding bidi control chars. Must be called only from UI thread.
-
selectSourceText
public void selectSourceText()
Select the source text of the current segment.- Specified by:
selectSourceText
in interfaceIEditor
-
gotoHistoryBack
public void gotoHistoryBack()
Go to previous segment from history. Must be called only from UI thread.- Specified by:
gotoHistoryBack
in interfaceIEditor
-
gotoHistoryForward
public void gotoHistoryForward()
Go to next segment from history. Must be called only from UI thread.- Specified by:
gotoHistoryForward
in interfaceIEditor
-
getSettings
public EditorSettings getSettings()
Get settings instance.- Specified by:
getSettings
in interfaceIEditor
- Returns:
- interface for read and change editor settings Can be called from any thread.
-
undo
public void undo()
Undo editing. Must be called only from UI thread.
-
redo
public void redo()
Redo editing. Must be called only from UI thread.
-
getSelectedText
public java.lang.String getSelectedText()
Get currently selected text.- Specified by:
getSelectedText
in interfaceIEditor
- Returns:
- selected text Must be called only from UI thread.
-
remarkOneMarker
public void remarkOneMarker(java.lang.String markerClassName)
Calls specified marker for reprocess all entries.- Specified by:
remarkOneMarker
in interfaceIEditor
-
markActiveEntrySource
public void markActiveEntrySource(SourceTextEntry requiredActiveEntry, java.util.List<Mark> marks, java.lang.String markerClassName)
All plugins can call this method for mark something in active entry.- Specified by:
markActiveEntrySource
in interfaceIEditor
- Parameters:
requiredActiveEntry
- entry which should be active. If user moved to other entry, then marks will be skippedmarks
- list of marksmarkerClassName
- marker's class name
-
registerPopupMenuConstructors
public void registerPopupMenuConstructors(int priority, IPopupMenuConstructor constructor)
Description copied from interface:IEditor
Register constructor of popup menu.- Specified by:
registerPopupMenuConstructors
in interfaceIEditor
- Parameters:
priority
- priority of process orderconstructor
- constructor instance
-
getFilter
public IEditorFilter getFilter()
Description copied from interface:IEditor
Gets a filter for this editor, or null if filter doesn't applied.
-
setFilter
public void setFilter(IEditorFilter filter)
Sets a filter to this editor. The filter causes only the selected entries to be shown in the editor. Document is reloaded to immediately have the filter being effective.
-
removeFilter
public void removeFilter()
Removes the current filter. Document is reloaded if appropriate to immediately remove the filter;- Specified by:
removeFilter
in interfaceIEditor
-
setAlternateTranslationForCurrentEntry
public void setAlternateTranslationForCurrentEntry(boolean alternate)
Set default/alternate translation for current entry.- Specified by:
setAlternateTranslationForCurrentEntry
in interfaceIEditor
-
registerUntranslated
public void registerUntranslated()
Description copied from interface:IEditor
Register untranslated.- Specified by:
registerUntranslated
in interfaceIEditor
-
registerEmptyTranslation
public void registerEmptyTranslation()
Description copied from interface:IEditor
Register as empty.- Specified by:
registerEmptyTranslation
in interfaceIEditor
-
registerIdenticalTranslation
public void registerIdenticalTranslation()
Description copied from interface:IEditor
Register translation to be identical to source.- Specified by:
registerIdenticalTranslation
in interfaceIEditor
-
windowDeactivated
public void windowDeactivated()
Description copied from interface:IEditor
Perform any necessary actions for window deactivation.- Specified by:
windowDeactivated
in interfaceIEditor
-
getAlphabeticalMarkers
public AlphabeticalMarkers getAlphabeticalMarkers()
-
getAutoCompleter
public IAutoCompleter getAutoCompleter()
Description copied from interface:IEditor
Access the AutoCompleter- Specified by:
getAutoCompleter
in interfaceIEditor
-
-