Revision: 9de221b72ac9 Branch: default Author: Brandon Roller <brandon.r.roller@xxxxxxxxx> Date: Mon Jan 27 18:34:22 2014 UTC Log: Added insert transcriber note; from text view only http://code.google.com/p/brailleblaster/source/detail?r=9de221b72ac9 Modified: /dist/programData/lang/i18n_en_US.properties /src/main/org/brailleblaster/perspectives/braille/Manager.java/src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java
/src/main/org/brailleblaster/perspectives/braille/ui/BrailleMenu.java /src/main/org/brailleblaster/perspectives/braille/views/tree/BBTree.java /src/main/org/brailleblaster/perspectives/braille/views/tree/BookTree.java /src/main/org/brailleblaster/perspectives/braille/views/tree/XMLTree.java /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java /src/main/org/brailleblaster/perspectives/braille/views/wp/WPView.java =======================================--- /dist/programData/lang/i18n_en_US.properties Fri Jan 24 20:25:51 2014 UTC +++ /dist/programData/lang/i18n_en_US.properties Mon Jan 27 18:34:22 2014 UTC
@@ -69,6 +69,7 @@ Refresh&Translation=Refresh &Translation\tF5 &BackTranslate=&Back Translate &TranslationTemplates=Translation Tem&plates +transcriberNote = Insert Transcriber &Note # &InLineMath=&Inline Math &DisplayedMath=&Displayed Math =======================================--- /src/main/org/brailleblaster/perspectives/braille/Manager.java Fri Jan 24 16:18:54 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/Manager.java Mon Jan 27 18:34:22 2014 UTC
@@ -46,6 +46,7 @@ import javax.print.PrintException; +import nu.xom.Attribute; import nu.xom.Document; import nu.xom.Element; import nu.xom.Node; @@ -63,6 +64,7 @@ import org.brailleblaster.perspectives.braille.document.BrailleDocument; import org.brailleblaster.perspectives.braille.mapping.MapList; import org.brailleblaster.perspectives.braille.mapping.TextMapElement; +import org.brailleblaster.perspectives.braille.messages.BBEvent; import org.brailleblaster.perspectives.braille.messages.Message;import org.brailleblaster.perspectives.braille.spellcheck.SpellCheckManager;
import org.brailleblaster.perspectives.braille.stylepanel.StyleManager; @@ -721,7 +723,7 @@treeView.split(Message.createSplitTreeMessage(firstElementIndex, secondElementIndex, currentIndex, treeIndex));
}- public int insertElement(Element e, int index, int start, int brailleStart){ + private int insertElement(Element e, int index, int start, int brailleStart){
int count = e.getChildCount(); int currentIndex = index; int currentStart = start; @@ -777,7 +779,7 @@ elsebraille.insertLineBreak(list.getCurrent().brailleList.getFirst().start - 1);
- treeView.newTreeItem(list.get(list.getCurrentIndex()), index); + treeView.newTreeItem(list.get(list.getCurrentIndex()), index, 0); } private void insertElementAtEnd(Message m){ @@ -792,7 +794,23 @@ m.put("brailleLength", 0); braille.insertLineBreak(list.getCurrent().brailleList.getLast().end); - treeView.newTreeItem(list.get(list.getCurrentIndex() + 1), index + 1); + treeView.newTreeItem(list.get(list.getCurrentIndex() + 1), index, 1); + } + + public void insertTranscriberNote(){ + text.update(this, false); ++ ArrayList<Integer>posList = list.findTextMapElementRange(list.getCurrentIndex(), (Element)list.getCurrent().n.getParent(), true);
+ + text.insertNewNode(this, list.get(posList.get(posList.size() - 1)).end); + + Element e = list.getCurrent().parentElement(); + e.addAttribute(new Attribute("class", "trNote")); + + Message styleMessage = new Message(BBEvent.UPDATE_STYLE); + Styles style = styles.get("trnote"); + styleMessage.put("Style", style); + dispatch(styleMessage); } private void handleRemoveNode(Message message){ =======================================--- /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Tue Jan 14 16:25:50 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Mon Jan 27 18:34:22 2014 UTC
@@ -87,8 +87,21 @@ Element p = makeElement("p", "semantics", "style,para"); p.appendChild(new Text("")); - Element parent = (Element)current.parentElement().getParent(); - int nodeIndex = parent.indexOf(current.parentElement()); + Element parent = current.parentElement(); + int nodeIndex = 0; + if(table.getSemanticTypeFromAttribute(parent).equals("style")){ + parent = (Element)parent.getParent(); + nodeIndex = parent.indexOf(current.parentElement()); + } + else { + while(table.getSemanticTypeFromAttribute(parent).equals("action")){ + nodeIndex = parent.getParent().indexOf(parent); + parent = (Element)parent.getParent(); + } + nodeIndex = parent.getParent().indexOf(parent); + parent = (Element)parent.getParent(); + } + parent.insertChild(p, nodeIndex + 1);list.add(index, new TextMapElement(textOffset, textOffset, p.getChild(0)));
=======================================--- /src/main/org/brailleblaster/perspectives/braille/ui/BrailleMenu.java Fri Jan 24 20:25:51 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/ui/BrailleMenu.java Mon Jan 27 18:34:22 2014 UTC
@@ -71,6 +71,7 @@ MenuItem inLineGraphicItem; MenuItem displayedGraphicItem; MenuItem tableItem; + MenuItem insertTRItem; MenuItem brlFormatItem; MenuItem showTranslationTemplatesItem; MenuItem showFormatTemplatesItem; @@ -89,7 +90,7 @@ translateItem.setText(lh.localValue("&Braille")); MenuItem insertItem = new MenuItem(menuBar, SWT.CASCADE, 5); insertItem.setText(lh.localValue("&Insert")); - insertItem.setEnabled(false); /* FO */ + //insertItem.setEnabled(false); /* FO */ MenuItem advancedItem = new MenuItem(menuBar, SWT.CASCADE, 6); advancedItem.setText(lh.localValue("&Advanced")); @@ -555,8 +556,7 @@ xmlTreeItem.addSelectionListener(new SelectionListener(){ @Override public void widgetDefaultSelected(SelectionEvent arg0) { - // TODO Auto-generated method stub - + // TODO Auto-generated method stub } @Override @@ -575,8 +575,7 @@ bookTreeItem.addSelectionListener(new SelectionListener(){ @Override public void widgetDefaultSelected(SelectionEvent arg0) { - // TODO Auto-generated method stub - + // TODO Auto-generated method stub } @Override @@ -685,8 +684,7 @@ @Override public void widgetSelected(SelectionEvent e) { int count = wp.getFolder().getItemCount(); - //if(index != -1) - //wp.getList().get(index).refresh(); + if(count > 0) currentEditor.refresh(); } @@ -712,6 +710,15 @@ // Set up insert menu Menu insertMenu = new Menu(wp.getShell(), SWT.DROP_DOWN); + insertTRItem = new MenuItem(insertMenu, SWT.PUSH); + insertTRItem.setText(lh.localValue("transcriberNote")); + insertTRItem.addSelectionListener(new SelectionAdapter(){ + @Override + public void widgetSelected(SelectionEvent e) { + currentEditor.insertTranscriberNote(); + } + }); + /* inLineMathItem = new MenuItem(insertMenu, SWT.PUSH); inLineMathItem.setText(lh.localValue("&InLineMath")); inLineMathItem.addSelectionListener(new SelectionAdapter() { @@ -752,6 +759,7 @@ //dm.placeholder(); } }); + */ insertItem.setMenu(insertMenu); // Set up advanced menu =======================================--- /src/main/org/brailleblaster/perspectives/braille/views/tree/BBTree.java Fri Jan 17 15:13:46 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/tree/BBTree.java Mon Jan 27 18:34:22 2014 UTC
@@ -12,7 +12,7 @@ public interface BBTree extends BBView { public void setRoot(Element e); public TreeItem getRoot(); - public void newTreeItem(TextMapElement t, int index); + public void newTreeItem(TextMapElement t, int index, int offset); public void removeCurrent(); public void removeItem(TextMapElement t, Message m); public void removeMathML(TextMapElement t); =======================================--- /src/main/org/brailleblaster/perspectives/braille/views/tree/BookTree.java Fri Jan 17 15:13:46 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/tree/BookTree.java Mon Jan 27 18:34:22 2014 UTC
@@ -232,13 +232,13 @@ } @Override - public void newTreeItem(TextMapElement t, int index) { + public void newTreeItem(TextMapElement t, int index, int offset) { if(isHeading(t)){ TreeItem temp; if(lastParent != null) - temp = new TreeItem(lastParent, SWT.None, index); + temp = new TreeItem(lastParent, SWT.None, index + offset); else - temp = new TreeItem(root, SWT.None, index); + temp = new TreeItem(root, SWT.None, index + offset); temp.setText(t.getText()); temp.setData(new TreeItemData(t.parentElement(), manager.indexOf(t))); @@ -481,7 +481,7 @@ int treeIndex = (Integer)m.getValue("treeIndex"); if(isHeading(manager.getTextMapElement(firstElementIndex))) - newTreeItem(manager.getTextMapElement(firstElementIndex), treeIndex); + newTreeItem(manager.getTextMapElement(firstElementIndex), treeIndex, 0); if(isHeading(manager.getTextMapElement(secondElementIndex))){ if(!item.equals(root)){ @@ -489,7 +489,7 @@item.setData(new TreeItemData(manager.getTextMapElement(secondElementIndex).parentElement(), manager.indexOf(manager.getTextMapElement(secondElementIndex))));
} else {- newTreeItem(manager.getTextMapElement(secondElementIndex), treeIndex + 1); + newTreeItem(manager.getTextMapElement(secondElementIndex), treeIndex, 1);
} } =======================================--- /src/main/org/brailleblaster/perspectives/braille/views/tree/XMLTree.java Fri Jan 17 15:13:46 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/tree/XMLTree.java Mon Jan 27 18:34:22 2014 UTC
@@ -204,14 +204,14 @@ return temp; } - public void newTreeItem(TextMapElement t, int index){ + public void newTreeItem(TextMapElement t, int index, int offset){ Element parentElement = (Element)t.n.getParent(); while(parentElement.getAttributeValue("semantics").contains("action")){ parentElement = (Element)parentElement.getParent(); }TreeItem parent = findElementInTree(root, (Element)parentElement.getParent());
- TreeItem newItem = newTreeItem(parentElement, parent, index); + TreeItem newItem = newTreeItem(parentElement, parent, index + offset); TreeItemData data = new TreeItemData(parentElement); if(parentElement.equals(t.n.getParent())) @@ -220,14 +220,14 @@ newItem.setData(data); } - public void newTreeItem(ArrayList<TextMapElement>list, int index){+ public void newTreeItem(ArrayList<TextMapElement>list, int index, int offset){
Element parentElement = (Element)list.get(0).n.getParent(); while(parentElement.getAttributeValue("semantics").contains("action")){ parentElement = (Element)parentElement.getParent(); }TreeItem parent = findElementInTree(root, (Element)parentElement.getParent());
- TreeItem newItem = newTreeItem(parentElement, parent, index); + TreeItem newItem = newTreeItem(parentElement, parent, index + offset); TreeItemData data = new TreeItemData(parentElement); for(int i = 0; i < list.size(); i++){ @@ -574,7 +574,16 @@ public int getSelectionIndex(){ TreeItem parent = tree.getSelection()[0].getParentItem(); - return parent.indexOf(tree.getSelection()[0]); + TreeItem item = tree.getSelection()[0]; + + TreeItemData data = (TreeItemData)item.getData();+ while(manager.getStyleTable().getSemanticTypeFromAttribute(data.element).equals("action")){
+ item = parent; + parent = parent.getParentItem(); + data = (TreeItemData)item.getData(); + } + + return parent.indexOf(item); } public void clearTree(){ @@ -599,11 +608,11 @@ int secondElementIndex = (Integer)m.getValue("secondElementIndex"); removeCurrent(); - addTreeItems(firstElementIndex, currentIndex - 1, treeIndex); - addTreeItems(secondElementIndex, currentIndex,treeIndex + 1); + addTreeItems(firstElementIndex, currentIndex - 1, treeIndex, 0); + addTreeItems(secondElementIndex, currentIndex,treeIndex, 1); } - private void addTreeItems(int start, int end, int treeIndex){ + private void addTreeItems(int start, int end, int treeIndex, int offset){Element parent = manager.getDocument().getParent(manager.getTextMapElement(start).n, true);
ArrayList<TextMapElement> elementList = new ArrayList<TextMapElement>(); @@ -614,10 +623,10 @@ } if(elementList.size() > 0){ - newTreeItem(elementList, treeIndex); + newTreeItem(elementList, treeIndex, offset); } else { - newTreeItem(manager.getTextMapElement(start), treeIndex); + newTreeItem(manager.getTextMapElement(start), treeIndex, offset); } } =======================================--- /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java Tue Jan 14 17:45:10 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java Mon Jan 27 18:34:22 2014 UTC
@@ -147,26 +147,13 @@ if(atEnd) { Message m = Message.createInsertNodeMessage(false, false, true); - m.put("length", originalEnd - originalStart); - dm.dispatch(m); - setListenerLock(true); - view.setCaretOffset(currentEnd); - view.insert("\n"); - view.setCaretOffset(view.getCaretOffset() + 1); - setListenerLock(false); - e.doit = false; - setCurrent(dm); + insertNewNode(dm, m, currentEnd); + e.doit = false; } else if(atStart){ Message m = Message.createInsertNodeMessage(false, true, false); - m.put("length", originalEnd - originalStart); - dm.dispatch(m); - setListenerLock(true); - view.insert("\n"); - view.setCaretOffset(view.getCaretOffset() + 1); - setListenerLock(false); + insertNewNode(dm, m, null); e.doit = false; - setCurrent(dm); } else { Message m; @@ -1405,6 +1392,40 @@ setListenerLock(false); } + public void insertNewNode(Manager manager, int pos){ + Message m = Message.createInsertNodeMessage(false, false, true); + + if(pos > currentEnd){ + view.setCaretOffset(pos); + setCurrent(manager); + } + + insertNewNode(manager, m, pos); + } ++ //Calls manager to insert a node or element in the DOM and updates the view
+ //Used when inserting new paragraphs or transcriber notes + private void insertNewNode(Manager dm, Message m, Integer pos){ + m.put("length", originalEnd - originalStart); + dm.dispatch(m); + setListenerLock(true); + + if(pos != null) + view.setCaretOffset(pos); + + view.insert("\n"); + view.setCaretOffset(view.getCaretOffset() + 1); + + if(view.getCharCount() != view.getCaretOffset()){ + StyleRange range = view.getStyleRangeAtOffset(view.getCaretOffset()); + if(range != null) + resetStyleRange(range); + } + + setListenerLock(false); + setCurrent(dm); + } + @Override public void resetView(Group group) { setListenerLock(true); =======================================--- /src/main/org/brailleblaster/perspectives/braille/views/wp/WPView.java Tue Jan 14 17:45:10 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/wp/WPView.java Mon Jan 27 18:34:22 2014 UTC
@@ -47,7 +47,8 @@ return insertionString; } - + + //sets range and applies given form of emphasis protected void setFontRange(int start, int length, int style){ StyleRange styleRange = new StyleRange(); styleRange.start = start; @@ -62,11 +63,21 @@ view.setStyleRange(styleRange); } + //lengthens or shortens style range protected void updateRange(StyleRange style, int start, int length){ style.start = start; style.length = length; view.setStyleRange(style); } + + //reverts range to plain text + protected void resetStyleRange(StyleRange range){+ if(range.fontStyle != SWT.NORMAL || (range.fontStyle == SWT.NORMAL && range.underline == true)){
+ range.fontStyle = SWT.NORMAL; + range.underline = false; + } + view.setStyleRange(range); + } protected int[] getIndexArray(Element e){ int[] indexArray;