ASM #75
Change-Id: If2e1c8bc2d320b3681f64d8637fbabb9659d0c5b Former-commit-id: e726b2a3a2529f5909acb7fe0f9a3b8475f1642e
This commit is contained in:
parent
2294c81a57
commit
91c3468462
2 changed files with 173 additions and 28 deletions
|
@ -334,6 +334,7 @@ import com.raytheon.viz.ui.dialogs.SWTMessageBox;
|
|||
* 20Sep2013 #2394 lvenable Fixed color memory leaks.
|
||||
* 20Nov2013 DR 16777 D. Friedman Check if OUPRequest will work before setting ETN.
|
||||
* 10Dec2013 2601 mpduff Fix NullPointerException.
|
||||
* 28Jan2014 DR14595 mgamazaychikov Added template loading and editing functionality.
|
||||
* </pre>
|
||||
*
|
||||
* @author lvenable
|
||||
|
@ -1087,6 +1088,12 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
* Search and replace dialog.
|
||||
*/
|
||||
private SearchReplaceDlg searchReplaceDlg;
|
||||
|
||||
/**
|
||||
* Flag indicating if the overwrite mode has been set for
|
||||
* template editing.
|
||||
*/
|
||||
private boolean isTemplateOverwriteModeSet = false;
|
||||
|
||||
/**
|
||||
* Flag to indicate if the document being edited has been saved.
|
||||
|
@ -2051,14 +2058,16 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
overStrikeItem.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
if (overwriteMode == true) {
|
||||
overwriteMode = false;
|
||||
editorInsertCmb.select(INSERT_TEXT);
|
||||
} else {
|
||||
overwriteMode = true;
|
||||
editorInsertCmb.select(OVERWRITE_TEXT);
|
||||
if (!AFOSParser.isTemplate) {
|
||||
if (overwriteMode == true) {
|
||||
overwriteMode = false;
|
||||
editorInsertCmb.select(INSERT_TEXT);
|
||||
} else {
|
||||
overwriteMode = true;
|
||||
editorInsertCmb.select(OVERWRITE_TEXT);
|
||||
}
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
}
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -3698,18 +3707,20 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
editorInsertCmb.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
if ((editorInsertCmb.getSelectionIndex() == INSERT_TEXT)
|
||||
&& (overwriteMode == true)) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
overwriteMode = false;
|
||||
overStrikeItem.setSelection(false);
|
||||
} else if ((editorInsertCmb.getSelectionIndex() == OVERWRITE_TEXT)
|
||||
&& (overwriteMode == false)) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
overwriteMode = true;
|
||||
overStrikeItem.setSelection(true);
|
||||
if (!AFOSParser.isTemplate) {
|
||||
if (editorInsertCmb.getSelectionIndex() == INSERT_TEXT
|
||||
&& overwriteMode == true) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
overwriteMode = false;
|
||||
overStrikeItem.setSelection(false);
|
||||
} else if (editorInsertCmb.getSelectionIndex() == OVERWRITE_TEXT
|
||||
&& overwriteMode == false) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
overwriteMode = true;
|
||||
overStrikeItem.setSelection(true);
|
||||
}
|
||||
textEditor.setFocus();
|
||||
}
|
||||
textEditor.setFocus();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -3869,16 +3880,18 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
event.doit = false; // Ignore Ctrl+Shift+PageDown
|
||||
} else if (event.keyCode == SWT.INSERT) {
|
||||
// Ins key on the keypad
|
||||
if (overwriteMode == true) {
|
||||
overwriteMode = false;
|
||||
overStrikeItem.setSelection(false);
|
||||
editorInsertCmb.select(INSERT_TEXT);
|
||||
} else {
|
||||
overwriteMode = true;
|
||||
overStrikeItem.setSelection(true);
|
||||
editorInsertCmb.select(OVERWRITE_TEXT);
|
||||
if (AFOSParser.isTemplate) {
|
||||
if (overwriteMode == true) {
|
||||
overwriteMode = false;
|
||||
overStrikeItem.setSelection(false);
|
||||
editorInsertCmb.select(INSERT_TEXT);
|
||||
} else {
|
||||
overwriteMode = true;
|
||||
overStrikeItem.setSelection(true);
|
||||
editorInsertCmb.select(OVERWRITE_TEXT);
|
||||
}
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
}
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
} else if (event.keyCode > 500) {
|
||||
// Do nothing...
|
||||
// We need to capture the non-alphanumeric editing-related
|
||||
|
@ -3892,6 +3905,71 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
&& (event.character != '\n')) {
|
||||
userKeyPressed = true;
|
||||
}
|
||||
if (AFOSParser.isTemplate) {
|
||||
|
||||
if (event.keyCode == SWT.BS) {
|
||||
event.doit = false;
|
||||
int currentPos = textEditor.getCaretOffset();
|
||||
String textUpToCaret = textEditor.getText().substring(0, currentPos);
|
||||
int leftMost=textUpToCaret.lastIndexOf("[") + 1;
|
||||
int rightMost = textEditor.getText().indexOf("]",currentPos);
|
||||
int editableTextWidth = rightMost - leftMost;
|
||||
String leftPart="";
|
||||
String rightPart="";
|
||||
if (currentPos == leftMost) {
|
||||
leftPart = "";
|
||||
rightPart = textEditor.getText().substring(
|
||||
currentPos, rightMost);
|
||||
textEditor.setCaretOffset(leftMost);
|
||||
}
|
||||
else if (currentPos > leftMost && currentPos <= rightMost){
|
||||
leftPart = textEditor.getText().substring(
|
||||
leftMost, currentPos - 1);
|
||||
rightPart = textEditor.getText().substring(
|
||||
currentPos, rightMost);
|
||||
}
|
||||
else if (currentPos == rightMost) {
|
||||
leftPart = textEditor.getText().substring(
|
||||
leftMost, currentPos-1);
|
||||
rightPart = "";
|
||||
}
|
||||
String newString = leftPart + rightPart;
|
||||
int width = newString.length();
|
||||
int neededPadSpaces = editableTextWidth - newString.length();
|
||||
String newPaddedString = String.format("%1$-"
|
||||
+ (neededPadSpaces+1) + "s", newString);
|
||||
String spacedoutString = String.format("%1$-"
|
||||
+ (editableTextWidth) + "s",
|
||||
" ");
|
||||
textEditor.replaceTextRange(leftMost,
|
||||
spacedoutString.length(), spacedoutString);
|
||||
textEditor.replaceTextRange(leftMost,
|
||||
newPaddedString.length(), newPaddedString);
|
||||
textEditor.setCaretOffset(currentPos - 1);
|
||||
|
||||
|
||||
} else if (event.keyCode == SWT.TAB) {
|
||||
if (!isTemplateOverwriteModeSet) {
|
||||
if (overwriteMode) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
} else {
|
||||
}
|
||||
isTemplateOverwriteModeSet = true;
|
||||
}
|
||||
|
||||
event.doit = false;
|
||||
int currentPos = textEditor.getCaretOffset();
|
||||
String textUpToCaret = textEditor.getText().substring(
|
||||
0, currentPos);
|
||||
int openBracketPos = textUpToCaret.lastIndexOf("[");
|
||||
openBracketPos = textEditor.getText().indexOf("[", currentPos);
|
||||
textEditor.setCaretOffset(openBracketPos + 1);
|
||||
}
|
||||
else if (event.keyCode>=97 && event.keyCode <=122 ||
|
||||
event.keyCode>=48 && event.keyCode <=57){
|
||||
event.doit = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -4076,6 +4154,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
* Enter the text editor mode.
|
||||
*/
|
||||
private void enterEditor() {
|
||||
initTemplateOverwriteMode();
|
||||
StdTextProduct product = TextDisplayModel.getInstance()
|
||||
.getStdTextProduct(token);
|
||||
if ((product != null)
|
||||
|
@ -5119,6 +5198,10 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
body.append("\n");
|
||||
}
|
||||
body.append(textEditor.getText().trim());
|
||||
|
||||
if (AFOSParser.isTemplate){
|
||||
return removePreformat(body.toString());
|
||||
}
|
||||
|
||||
return body.toString();
|
||||
}
|
||||
|
@ -5249,6 +5332,10 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
productText += ATTACHMENT_STR
|
||||
+ statusBarLabel.getText().substring(startIndex);
|
||||
}
|
||||
|
||||
if (AFOSParser.isTemplate) {
|
||||
productText = removePreformat(productText);
|
||||
}
|
||||
|
||||
storedProduct.setProduct(productText.trim());
|
||||
|
||||
|
@ -6848,7 +6935,9 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
}
|
||||
String textProduct = product.getASCIIProduct();
|
||||
if ((product.getNnnid() + product.getXxxid())
|
||||
.startsWith(AFOSParser.DRAFT_PIL)) {
|
||||
.startsWith(AFOSParser.DRAFT_PIL) ||
|
||||
(product.getNnnid() + product.getXxxid())
|
||||
.startsWith(AFOSParser.MCP_NNN )) {
|
||||
String[] nnnxxx = TextDisplayModel.getNnnXxx(textProduct);
|
||||
String operationalPil = nnnxxx[0] + nnnxxx[1];
|
||||
String siteNode = SiteAbbreviationUtil.getSiteNode(nnnxxx[1]);
|
||||
|
@ -8492,4 +8581,46 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
return bbb;
|
||||
}
|
||||
}
|
||||
|
||||
private void initTemplateOverwriteMode() {
|
||||
if (AFOSParser.isTemplate) {
|
||||
editorInsertCmb.setEnabled(false);
|
||||
editorCutBtn.setEnabled(false);
|
||||
editorCopyBtn.setEnabled(false);
|
||||
editorPasteBtn.setEnabled(false);
|
||||
editorFillBtn.setEnabled(false);
|
||||
editorAttachBtn.setEnabled(false);
|
||||
overStrikeItem.setEnabled(false);
|
||||
if (!isTemplateOverwriteModeSet) {
|
||||
if (overwriteMode) {
|
||||
} else {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
}
|
||||
isTemplateOverwriteModeSet = true;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
editorInsertCmb.setEnabled(true);
|
||||
overStrikeItem.setEnabled(true);
|
||||
editorCutBtn.setEnabled(true);
|
||||
editorCopyBtn.setEnabled(true);
|
||||
editorPasteBtn.setEnabled(true);
|
||||
editorFillBtn.setEnabled(true);
|
||||
editorAttachBtn.setEnabled(true);
|
||||
if (isTemplateOverwriteModeSet && !overwriteMode){
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
isTemplateOverwriteModeSet=false;
|
||||
}
|
||||
if (!isTemplateOverwriteModeSet && overwriteMode){
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String removePreformat(String preformattedText) {
|
||||
String modifiedText = preformattedText.replaceAll("\\[|\\]", " ");
|
||||
modifiedText = removeSoftReturns(modifiedText);
|
||||
return modifiedText;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -92,6 +92,7 @@ import com.raytheon.uf.common.site.SiteMap;
|
|||
* Mar 30, 2011 8561 J. Ortiz Added enterEditor flag.
|
||||
* Jul 29, 2011 10237 R. Ferrel parseCommand now properly validates
|
||||
* commands with large index.
|
||||
* Jan 29, 2014 DR14595 mgamazaychikov Added handling of M: command
|
||||
* </pre>
|
||||
*
|
||||
* @author jkorman
|
||||
|
@ -104,6 +105,10 @@ public class AFOSParser {
|
|||
|
||||
public static final String DRAFT_PIL = "WRKWG";
|
||||
|
||||
public static final String MCP_NNN = "MCP";
|
||||
|
||||
public static boolean isTemplate = false;
|
||||
|
||||
private String productId;
|
||||
|
||||
private boolean validCommand = false;
|
||||
|
@ -143,6 +148,8 @@ public class AFOSParser {
|
|||
*/
|
||||
private boolean parseCommand(String siteId) {
|
||||
|
||||
AFOSParser.isTemplate = false;
|
||||
|
||||
StringBuilder cmd = new StringBuilder(afosCommand);
|
||||
|
||||
ccc = SiteMap.getInstance().getCCCFromXXXCode(siteId);
|
||||
|
@ -256,6 +263,13 @@ public class AFOSParser {
|
|||
nnn = cmd.substring(0, 3);
|
||||
xxx = cmd.substring(3);
|
||||
return true;
|
||||
} else if (afosCommand.startsWith("M:")) {
|
||||
// Remove the M: from afosCommand
|
||||
cmd.delete(0, 2);
|
||||
nnn = MCP_NNN;
|
||||
xxx = cmd.toString();
|
||||
AFOSParser.isTemplate = true;
|
||||
afosCommand = nnn.trim()+xxx.trim();
|
||||
} else {
|
||||
// Check for SS.NNN request
|
||||
int i = cmd.indexOf(".");
|
||||
|
|
Loading…
Add table
Reference in a new issue