[brailleblaster] Re: 5 new revisions pushed by sahel.ma...@xxxxxxxxx on 2014-07-31 18:56 GMT

  • From: Brandon Roller <brandon.r.roller@xxxxxxxxx>
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Thu, 31 Jul 2014 15:30:01 -0400

Let's say you highlighted three paragraphs and selected heading 2 in the
style panel.  It would apply heading 2 styles to all three.


On Thu, Jul 31, 2014 at 3:02 PM, Vic Beckley <vic.beckley3@xxxxxxxxx> wrote:

> What exactly is "multi select styles?" How do you use it?
>
>
> Best regards from Ohio,
>
> Vic
>
> -----Original Message-----
> From: brailleblaster-bounce@xxxxxxxxxxxxx
> [mailto:brailleblaster-bounce@xxxxxxxxxxxxx] On Behalf Of
> brailleblaster@xxxxxxxxxxxxxx
> Sent: Thursday, July 31, 2014 2:57 PM
> To: brailleblaster@xxxxxxxxxxxxx
> Subject: [brailleblaster] 5 new revisions pushed by sahel.ma...@xxxxxxxxx
> on
> 2014-07-31 18:56 GMT
>
> 5 new revisions:
>
> Revision: 9b58e3b359cf
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 24 20:04:42 2014 UTC
> Log:      Reverting some of files second time
> http://code.google.com/p/brailleblaster/source/detail?r=9b58e3b359cf
>
> Revision: d5bb11f3fb3b
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 31 15:34:17 2014 UTC
> Log:      Adding multi select style
> http://code.google.com/p/brailleblaster/source/detail?r=d5bb11f3fb3b
>
> Revision: b1edff6fec3e
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 31 15:38:44 2014 UTC
> Log:      commited before mereging
> http://code.google.com/p/brailleblaster/source/detail?r=b1edff6fec3e
>
> Revision: 30910e3d2f45
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 31 18:51:41 2014 UTC
> Log:      Fixed merge conflicts
> http://code.google.com/p/brailleblaster/source/detail?r=30910e3d2f45
>
> Revision: 1e17b7a92010
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 31 18:54:23 2014 UTC
> Log:      Fixed merge conflicts second
> http://code.google.com/p/brailleblaster/source/detail?r=1e17b7a92010
>
>
> ============================================================================
> ==
> Revision: 9b58e3b359cf
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 24 20:04:42 2014 UTC
> Log:      Reverting some of files second time
> http://code.google.com/p/brailleblaster/source/detail?r=9b58e3b359cf
>
> Modified:
>   /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> =======================================
> ---
> /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> Thu Jul 24 19:01:54 2014 UTC
> +++
> /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> Thu Jul 24 20:04:42 2014 UTC
> @@ -103,8 +103,6 @@
>         private PaintObjectListener paintObjListener;
>         private int originalStart, originalEnd;
>         private TextMapElement currentElement;
> -       int startSelection;
> -       int endSelection;
>
>         public TextView (Manager manager, Group documentWindow,
> BBSemanticsTable
> table) {
>                 super (manager, documentWindow, LEFT_MARGIN, RIGHT_MARGIN,
> TOP_MARGIN,
> BOTTOM_MARGIN, table);
> @@ -119,16 +117,7 @@
>                 view.addSelectionListener(selectionListener = new
> SelectionAdapter(){
>                         @Override
>                         public void widgetSelected(SelectionEvent e) {
> -
>                                 selectionArray = view.getSelectionRanges();
> -                               //Added this part for start and end of text
> selection
> -                               for (int i = 0; i <
> selectionArray.length-1;
> i++) {
> -                                       startSelection=selectionArray[i];
> -
> endSelection=selectionArray[i]+selectionArray[i+1];
> -
> -
> -                            }
> -                                System.out.println(startSelection+"
> "+endSelection);
>                                 if(selectionArray[1] > 0){
>                                         setSelection(selectionArray[0],
> selectionArray[1]);
>                                         currentChar = ' ';
>
>
> ============================================================================
> ==
> Revision: d5bb11f3fb3b
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 31 15:34:17 2014 UTC
> Log:      Adding multi select style
> http://code.google.com/p/brailleblaster/source/detail?r=d5bb11f3fb3b
>
> Modified:
>   /src/main/org/brailleblaster/perspectives/braille/Manager.java
>   /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> =======================================
> --- /src/main/org/brailleblaster/perspectives/braille/Manager.java      Thu
> Jul
> 24 19:35:48 2014 UTC
> +++ /src/main/org/brailleblaster/perspectives/braille/Manager.java      Thu
> Jul
> 31 15:34:17 2014 UTC
> @@ -36,6 +36,11 @@
>   import java.io.File;
>   import java.io.IOException;
>   import java.util.ArrayList;
> +import java.util.HashMap;
> +import java.util.HashSet;
> +import java.util.Iterator;
> +import java.util.LinkedHashSet;
> +import java.util.Set;
>
>   import org.slf4j.Logger;
>   import org.slf4j.LoggerFactory;
> @@ -55,6 +60,8 @@
>   import
> org.brailleblaster.perspectives.braille.document.BBSemanticsTable.Styles;
>   import
>
> org.brailleblaster.perspectives.braille.document.BBSemanticsTable.StylesType
> ;
>   import org.brailleblaster.perspectives.braille.document.BrailleDocument;
> +import
> org.brailleblaster.perspectives.braille.mapping.elements.BrlOnlyMapElement;
> +import
> org.brailleblaster.perspectives.braille.mapping.elements.PageMapElement;
>   import org.brailleblaster.perspectives.braille.mapping.elements.Range;
>   import
> org.brailleblaster.perspectives.braille.mapping.elements.SectionElement;
>   import
> org.brailleblaster.perspectives.braille.mapping.elements.TextMapElement;
> @@ -806,52 +813,126 @@
>                 else
>                         braille.positionScrollbar(text.view.getTopIndex());
>         }
> +       /***
> +     * Get parent style of the current TextMapElement
> +     * @param current
> +     * @param message
> +     * @return
> +     */
> +       private Element parentStyle(TextMapElement current, Message
> message)
> {
> +               Element parent = document.getParent(current.n, true);
> +               message.put("previousStyle",
> styles.get(styles.getKeyFromAttribute(parent)));
> +               document.changeSemanticAction(message,
> current.parentElement());
> +               message.put("style",
> styles.get(styles.getKeyFromAttribute(parent)));
> +               return parent;
> +
> +       }
> +       /***
> +        * Handle style for all cases
> +        * @param message
> +        */
>
> -       private void handleUpdateStyle(Message message){
> -               if(document.getDOM() != null &&
> text.view.getText().length()
> > 0){
> +       private void handleUpdateStyle(Message message) {
> +               if (document.getDOM() != null &&
> text.view.getText().length() > 0) {
>                         group.setRedraw(false);
> -                       Element parent =
> document.getParent(list.getCurrent().n, true);
> +                       if (message.getValue("multiSelect").equals(false))
> {
> +                               handleStyleCursorSelected(message);
>
> -                       message.put("previousStyle",
> styles.get(styles.getKeyFromAttribute(parent)));
> -                       document.changeSemanticAction(message,
> list.getCurrent().parentElement());
> -                       message.put("style",
> styles.get(styles.getKeyFromAttribute(parent)));
> -                       ArrayList<TextMapElement> itemList =
> list.findTextMapElements(list.getCurrentIndex(), parent, true);
> +                       } else {
> +                               handleStyleMultiSelected(message);
> +                       }
> +
> +               } else
> +                       new Notify(lh.localValue("nothingToApply"));
> +       }
> +       /***
> +        * Handle style if user just move cursor
> +        * @param message
> +        */
> +       private void handleStyleCursorSelected(Message message) {
> +               Element parent = parentStyle(list.getCurrent(), message);
> +               ArrayList<TextMapElement> itemList =
> list.findTextMapElements(
> +                               list.getCurrentIndex(), parent, true);
> +               adjustStyle(itemList, message);
> +
> +       }
> +       /***
> +        * Apply styles to selected text for multiple elements
> +        * @param start
> +        * @param end
> +        * @param message
> +        */
> +       private void handleStyleMultiSelected(Message message){
>
> -                       int start = list.indexOf(itemList.get(0));
> -                       int end = list.indexOf(itemList.get(itemList.size()
> - 1));
> -                       int origPos =
> list.get(list.getNodeIndex(itemList.get(0))).start;
> -                       if(start > 0){
> -                               message.put("prev", list.get(start -
> 1).end);
> -                               message.put("braillePrev", list.get(start -
>
> 1).brailleList.getLast().end);
> +               int start=text.getSelectedText()[0];
> +               int end=text.getSelectedText()[1];
> +
> +               Set<TextMapElement> itemSet = getElementSelected(start,
> end);
> +
> +               Iterator<TextMapElement> itr = itemSet.iterator();
> +               while (itr.hasNext())
> +               {
> +                       TextMapElement tempElement= itr.next();
> +
> +
>
> if(tempElement.parentElement().getAttributeValue("semantics").contains("styl
> e")
> ||
>
> tempElement.parentElement().getAttributeValue("semantics").contains("action"
> ))
> +                       {
> +                               Message styleMessage = new Message(null);
> +                               styleMessage.put("Style",
> message.getValue("Style"));
> +                               Element parent = parentStyle(tempElement,
> styleMessage);
> +
> +                               ArrayList<TextMapElement> itemList =
> list.findTextMapElements(list.getNodeIndex(tempElement), parent, true);
> +                               adjustStyle( itemList,styleMessage);
>                         }
> -                       else {
> -                               message.put("prev", -1);
> -                               message.put("braillePrev", -1);
> -                       }
> -
> -                       if(end < list.size() - 1){
> -                               message.put("next", list.get(end +
> 1).start);
> -                               message.put("brailleNext",  list.get(end +
> 1).brailleList.getFirst().start);
> -                       }
> -                       else {
> -                               message.put("next", -1);
> -                               message.put("brailleNext", -1);
> -                       }
> -
> -                       text.adjustStyle(message, itemList);
> -                       braille.adjustStyle(message, itemList);
> -
> -                       if(message.contains("linesBeforeOffset"))
> -                               list.shiftOffsetsFromIndex(start,
> (Integer)message.getValue("linesBeforeOffset"),
> (Integer)message.getValue("linesBeforeOffset"), origPos);
> -                       if(message.contains("linesAfterOffset") &&
> list.size() > 1 && end <
> list.size() - 1)
> -                               list.shiftOffsetsFromIndex(end + 1,
> (Integer)message.getValue("linesAfterOffset"),
> (Integer)message.getValue("linesAfterOffset"), origPos);
> +               }
> +
> +       }
> +       /***
> +        * Adjust style of elements in the list base on previous and next
> element
> +        * @param itemList : all selected items which we want style to be
> applied
> +        * @param message : passing information regarding styles
> +        */
>
> -                       treeView.adjustItemStyle(list.getCurrent());
> -                       group.setRedraw(true);
> +       private void adjustStyle(ArrayList<TextMapElement> itemList,
> Message
>
> message) {
> +               int start = list.indexOf(itemList.get(0));
> +               int end = list.indexOf(itemList.get(itemList.size() - 1));
> +               int origPos =
> list.get(list.getNodeIndex(itemList.get(0))).start;
> +               if (start > 0) {
> +                       message.put("prev", list.get(start - 1).end);
> +                       message.put("braillePrev",
> +                                       list.get(start -
> 1).brailleList.getLast().end);
> +               } else {
> +                       message.put("prev", -1);
> +                       message.put("braillePrev", -1);
>                 }
> -               else
> -                       new Notify(lh.localValue("nothingToApply"));
> +
> +               if (end < list.size() - 1) {
> +                       message.put("next", list.get(end + 1).start);
> +                       message.put("brailleNext",
> +                                       list.get(end +
> 1).brailleList.getFirst().start);
> +               } else {
> +                       message.put("next", -1);
> +                       message.put("brailleNext", -1);
> +               }
> +
> +               text.adjustStyle(message, itemList);
> +               braille.adjustStyle(message, itemList);
> +
> +               if (message.contains("linesBeforeOffset"))
> +                       list.shiftOffsetsFromIndex(start,
> +                                       (Integer)
> message.getValue("linesBeforeOffset"),
> +                                       (Integer)
> message.getValue("linesBeforeOffset"), origPos);
> +               if (message.contains("linesAfterOffset") && list.size() > 1
> +                               && end < list.size() - 1)
> +                       list.shiftOffsetsFromIndex(end + 1,
> +                                       (Integer)
> message.getValue("linesAfterOffset"),
> +                                       (Integer)
> message.getValue("linesAfterOffset"), origPos);
> +
> +               treeView.adjustItemStyle(list.getCurrent());
> +               group.setRedraw(true);
> +
>         }
> +
> +
>
>         public void saveAs(){
>                 BBFileDialog dialog = new BBFileDialog(wp.getShell(),
> SWT.SAVE,
> arch.getFileTypes(), arch.getFileExtensions());
> @@ -1199,6 +1280,37 @@
>                 else
>                         return null;
>         }
> +       /***
> +        * Return all elements that selected in text
> +        * @param start :start location of where text selected
> +        * @param end:  where selection ended
> +        * @return: Set of all element where in selection
> +        */
> +       public Set<TextMapElement> getElementSelected(int start, int end) {
> +
> +               Set<TextMapElement> elementSelectedSet = new
> LinkedHashSet<TextMapElement>();
> +               Set<Element> parentElement = new LinkedHashSet<Element>();
> +               int j=start;
> +               while( j < end) {
> +                       TextMapElement t = getElementInRange(j);
> +
> +                       if ((t != null) && (!((t instanceof
> BrlOnlyMapElement )||(t instanceof
> PageMapElement)))) {
> +                               Element currentParent =
> document.getParent(t.n, true);
> +
> if(!(parentElement.contains(currentParent))){
> +                                       parentElement.add(currentParent);
> +                                       elementSelectedSet.add(t);
> +                               }
> +
> +                               j=t.end+1;
> +
> +                       }
> +                       else
> +                       {
> +                           j=j+1;
> +                       }
> +               }
> +               return elementSelectedSet;
> +       }
>
>         public TextMapElement getElementInBrailleRange(int offset){
>                 Message m = new Message(null);
> =======================================
> ---
> /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> Thu Jul 24 20:04:42 2014 UTC
> +++
> /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> Thu Jul 31 15:34:17 2014 UTC
> @@ -103,6 +103,7 @@
>         private PaintObjectListener paintObjListener;
>         private int originalStart, originalEnd;
>         private TextMapElement currentElement;
> +       private boolean multiSelected;
>
>         public TextView (Manager manager, Group documentWindow,
> BBSemanticsTable
> table) {
>                 super (manager, documentWindow, LEFT_MARGIN, RIGHT_MARGIN,
> TOP_MARGIN,
> BOTTOM_MARGIN, table);
> @@ -110,6 +111,7 @@
>                 this.spaceBeforeText = 0;
>                 this.spaceAfterText = 0;
>                 this.manager = manager;
> +               multiSelected=false;
>         }
>
>         @Override
> @@ -119,7 +121,7 @@
>                         public void widgetSelected(SelectionEvent e) {
>                                 selectionArray = view.getSelectionRanges();
>                                 if(selectionArray[1] > 0){
> -                                       setSelection(selectionArray[0],
> selectionArray[1]);
> +                                       multiSelected=true;
>                                         currentChar = ' ';
>                                         if(currentChanges > 0)
>                                                 sendUpdate();
> @@ -1755,4 +1757,19 @@
>                 spaceBeforeText = 0;
>            spaceBeforeText = 0;
>          }
> +       public int[] getSelectedText()
> +       {
> +               int [] temp=new int[2];
> +               if(selectionArray!=null){
> +                  temp[0]=selectionArray[0];
> +                  temp[1]=selectionArray[0]+selectionArray[1];
> +               }
> +               return temp;
> +       }
> +
> +       public boolean isMultiSelected() {
> +               return multiSelected;
> +       }
> +
> +
>   }
>
>
> ============================================================================
> ==
> Revision: b1edff6fec3e
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 31 15:38:44 2014 UTC
> Log:      commited before mereging
> http://code.google.com/p/brailleblaster/source/detail?r=b1edff6fec3e
>
> Modified:
>   /src/main/org/brailleblaster/archiver/NimasArchiver.java
>
>
> /src/main/org/brailleblaster/perspectives/braille/stylepanel/StyleManager.ja
> va
>
> =======================================
> --- /src/main/org/brailleblaster/archiver/NimasArchiver.java    Thu Jul 24
> 19:10:40 2014 UTC
> +++ /src/main/org/brailleblaster/archiver/NimasArchiver.java    Thu Jul 31
> 15:38:44 2014 UTC
> @@ -85,7 +85,7 @@
>
>                 // Segment the single NIMAS file. This will make rendering
>                 // faster in certain perspectives.
> -               writeNimasSegments();
> +               //writeNimasSegments();
>
>                 currentConfig = getAutoCfg("nimas"); // Nimas document.
>                 filterNames = new String[] {"XML", "XML Zip", "BRF",
> "UTDML"};
> =======================================
> ---
>
> /src/main/org/brailleblaster/perspectives/braille/stylepanel/StyleManager.ja
> va
> Thu Jul  3 16:07:57 2014 UTC
> +++
>
> /src/main/org/brailleblaster/perspectives/braille/stylepanel/StyleManager.ja
> va
> Thu Jul 31 15:38:44 2014 UTC
> @@ -102,8 +102,18 @@
>       public void apply(String item){
>         Message m = new Message(BBEvent.UPDATE_STYLE);
>         Styles style = semanticsTable.get(item);
> +
>         if(style != null){
>                 m.put("Style", style);
> +               if(dm.getText().isMultiSelected()==true)
> +               {
> +                       m.put("multiSelect", true);
> +               }
> +               else
> +               {
> +                       m.put("multiSelect", false);
> +
> +               }
>                 dm.dispatch(m);
>         }
>       }
>
>
> ============================================================================
> ==
> Revision: 30910e3d2f45
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 31 18:51:41 2014 UTC
> Log:      Fixed merge conflicts
> http://code.google.com/p/brailleblaster/source/detail?r=30910e3d2f45
>
> Modified:
>   /src/main/org/brailleblaster/archiver/NimasArchiver.java
>   /src/main/org/brailleblaster/perspectives/braille/Manager.java
>
>
> /src/main/org/brailleblaster/perspectives/braille/stylepanel/StyleManager.ja
> va
>   /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> =======================================
> --- /src/main/org/brailleblaster/archiver/NimasArchiver.java    Thu Jul 31
> 15:38:44 2014 UTC
> +++ /src/main/org/brailleblaster/archiver/NimasArchiver.java    Thu Jul 31
> 18:51:41 2014 UTC
> @@ -30,26 +30,12 @@
>
>   package org.brailleblaster.archiver;
>
> -import java.io.BufferedOutputStream;
>   import java.io.File;
> -import java.io.FileNotFoundException;
> -import java.io.FileOutputStream;
>   import java.io.IOException;
> -import java.io.OutputStream;
> -import java.io.OutputStreamWriter;
> -import java.io.PrintWriter;
> -import java.io.StringWriter;
>   import java.util.ArrayList;
> -import java.util.HashMap;
>   import java.util.HashSet;
>   import java.util.Set;
>
> -import javax.xml.parsers.DocumentBuilderFactory;
> -import javax.xml.parsers.ParserConfigurationException;
> -import javax.xml.transform.dom.DOMSource;
> -import javax.xml.transform.stream.StreamResult;
> -import javax.xml.transform.stream.StreamSource;
> -
>   import nu.xom.Attribute;
>   import nu.xom.Builder;
>   import nu.xom.Document;
> @@ -58,17 +44,12 @@
>   import nu.xom.Nodes;
>   import nu.xom.ParsingException;
>   import nu.xom.ValidityException;
> -import nu.xom.XPathContext;
> -import nu.xom.converters.DOMConverter;
> -import nu.xom.xslt.XSLException;
> -import nu.xom.xslt.XSLTransform;
>
>   import org.brailleblaster.BBIni;
>   import org.brailleblaster.document.BBDocument;
>   import org.brailleblaster.util.FileUtils;
>   import org.brailleblaster.util.Notify;
>   import org.brailleblaster.util.Zipper;
> -import org.w3c.dom.DOMImplementation;
>
>
>
> ////////////////////////////////////////////////////////////////////////////
> //////
>   // Prepares Nimas Archive for opening.
> @@ -76,21 +57,27 @@
>
>
>         Set <String> allPaths;
> -
> +       // The number of documents we COULD have if wrote them all to disk.
> +       int numPotentialFiles = 0;
>
>         NimasArchiver(String docToPrepare) {
> +
>                 super(docToPrepare);
> +
> +               currentConfig = getAutoCfg("nimas"); // Nimas document.
> +               filterNames = new String[] {"XML", "XML Zip", "BRF",
> "UTDML"};
> +               filterExtensions = new String[] {"*.xml", "*.zip", "*.brf",
> "*.utd"};
> +               allPaths = new HashSet<String>();
> +
> +               // Unzip file if needed.
>                 if(docToPrepare.endsWith(".zip"))
>                         unzip(docToPrepare);
>
>                 // Segment the single NIMAS file. This will make rendering
>                 // faster in certain perspectives.
> -               //writeNimasSegments();
> -
> -               currentConfig = getAutoCfg("nimas"); // Nimas document.
> -               filterNames = new String[] {"XML", "XML Zip", "BRF",
> "UTDML"};
> -               filterExtensions = new String[] {"*.xml", "*.zip", "*.brf",
> "*.utd"};
> -               allPaths=new HashSet<String>();
> +
> +               // Write the first file to disk.
> +               wrtieToDisk(0);
>         }
>
>         @Override
> @@ -100,7 +87,7 @@
>                         path = workingDocPath;
>
>                 if(fu.createXMLFile(doc.getNewXML(), path)){
> -                       String tempSemFile = BBIni.getTempFilesPath() +
> BBIni.getFileSep() +
> fu.getFileName(path) + ".sem";
> +                       String tempSemFile = BBIni.getTempFilesPath() +
> BBIni.getFileSep() +
> fu.getFileName(path) + ".sem";
>                         copySemanticsFile(tempSemFile, fu.getPath(path) +
> BBIni.getFileSep() +
> fu.getFileName(path) + ".sem");
>                 }
>                 else {
> @@ -131,6 +118,7 @@
>                 String sp = BBIni.getFileSep();
>                 String tempOutPath = BBIni.getTempFilesPath() +
> filePath.substring(filePath.lastIndexOf(sp), filePath.lastIndexOf(".")) +
> sp;
>                 workingDocPath = unzipr.Unzip(filePath, tempOutPath);
> +
>                 // Store paths.
>                 zippedPath = filePath;
>         }
> @@ -194,7 +182,30 @@
>                 arch.save(doc, path);
>                 return arch;
>         }
> +
> +
>
> ////////////////////////////////////////////////////////////////////////////
> /////
> +       // Clears the list of path indices so we can once again create them
> on
> the fly.
> +       // Needed when we save a nimas file. We have to delete all of the
> temp
> files,
> +       // zip, then recreate them for the user.
> +       public void resetDuplicatePathList() {
> +               allPaths.clear();
> +       }
>
> +
>
> ////////////////////////////////////////////////////////////////////////////
> /////
> +       // Resets the path list(resetDuplicatePathList()), and writes a
> +       // chunked document to disk using the specified index.
> +       public void resetThenWrite(int idx) {
> +               resetDuplicatePathList();
> +               wrtieToDisk(idx);
> +       }
> +
> +
>
> ////////////////////////////////////////////////////////////////////////////
> /////
> +       // Returns the number of potential files we would have
> +       // if all of them were written to disk.
> +       public int getNumPotentialFiles() {
> +               return numPotentialFiles;
> +       }
> +
>         /***
>          * Write to the disk once at time if the file is not there already
>          * @param index
> @@ -203,20 +214,23 @@
>         public String wrtieToDisk(int index){
>                 // Build string path.
>                 String outPath = workingDocPath.substring(0,
> workingDocPath.lastIndexOf(BBIni.getFileSep())) + BBIni.getFileSep() +
> Integer.toString(index) + ".xml";
> -               if(!(allPaths.contains(Integer.toString(index)))){
> +               if( !(allPaths.contains(Integer.toString(index))) ){
>
> -                       Document curDoc=manageNimas(index);
> +                       // Break up document by level1 elements and
> retrieve
> the current one.
> +                       Document curDoc = manageNimas(index);
> +
>                         // Create file utility for saving our xml files.
>                         FileUtils fu = new FileUtils();
>
>                         // Write file.
>                         fu.createXMLFile( curDoc, outPath );
>                         allPaths.add(Integer.toString(index));
> +
> +                       // Add this file to the temp list so it will be
> deleted later.
> +                       tempList.add(outPath);
>                 }
>
>                 return outPath;
> -
> -
>         }
>
>       /***
> @@ -231,14 +245,39 @@
>                 File temp = new File(sourcePath);
>                 //get all level1 element
>                 Nodes allNode=getLevel1();
> +
> +               // Store the number of files we would create if we
> +               // ran through all of the indices.
> +               numPotentialFiles = allNode.size();
> +
>                 if (index<allNode.size()){
>                         Node node=allNode.get(index);
>                         currentDoc=breakDocument(temp,node);
> +               }
> +
> +               // Get the number of <img> elements.
> +               if(getImgCountList().size() == 0)
> +               {
> +                       // Go through every <level1> element, and count the
> +                       // images.
> +                       for(int curLvl1 = 0; curLvl1 < allNode.size();
> curLvl1++)
> +                       {
> +                               // Add the count.
> +                               Node nd = allNode.get(curLvl1);
> +                               addToNumImgsList( new
> Document((Element)nd.copy()), curLvl1);
> +                       }
>
> +                       // Save paths to files that we may create.
> +                       // Fill list.
> +                       if(epubFileList.size() == 0) {
> +                               for(int curF = 0; curF < numPotentialFiles;
> curF++) {
> +
> epubFileList.add(workingDocPath.substring(0,
> workingDocPath.lastIndexOf(BBIni.getFileSep())) + BBIni.getFileSep() +
> Integer.toString(curF) + ".xml");
> +                               }
> +                       }
>                 }
>
> -               return currentDoc;
>
> +               return currentDoc;
>         }
>
>
> @@ -359,60 +398,60 @@
>         }
>
>
>
> ////////////////////////////////////////////////////////////////////////////
> /
> -       // Writes segmented NIMAS documents to disc and returns a list of
> their
> +       // Writes segmented NIMAS documents to disk and returns a list of
> their
>         // paths.
> -       public ArrayList<String> writeNimasSegments()
> -       {
> -        // Grab list of documents after breaking them up by level1's.
> -        ArrayList<Document> docs = manageNimas();
> -
> -           // Create file utility for saving our xml files.
> -               FileUtils fu = new FileUtils();
> -
> -               // Path to xsl file. Add three slashes to avoid BS.
> -       String xslPath = "file:///" + BBIni.getProgramDataPath() +
> BBIni.getFileSep() + "xsl" + BBIni.getFileSep() + "dtb2005html.xsl";
> +//     public ArrayList<String> writeNimasSegments()
> +//     {
> +//        // Grab list of documents after breaking them up by level1's.
> +//        ArrayList<Document> docs = manageNimas();
> +//
> +//         // Create file utility for saving our xml files.
> +//             FileUtils fu = new FileUtils();
> +//
> +//             // Path to xsl file. Add three slashes to avoid BS.
> +//     String xslPath = "file:///" + BBIni.getProgramDataPath() +
> BBIni.getFileSep() + "xsl" + BBIni.getFileSep() + "dtb2005html.xsl";
> +////
> +////           // Build the xsl document.
> +//     Document xslDoc = null;
> +//             Builder builder = new Builder();
> +//        try { xslDoc = builder.build(xslPath); }
> +//        catch (ValidityException e1) { e1.printStackTrace(); }
> +//        catch (ParsingException e1) { e1.printStackTrace(); }
> +//        catch (IOException e1) { e1.printStackTrace(); }
> +//
> +//        // Create the transform.
> +//        XSLTransform xslt = null;
> +//        try { xslt = new XSLTransform(xslDoc); }
> +//        catch (XSLException e1) { e1.printStackTrace(); }
>   //
> -//     // Build the xsl document.
> -       Document xslDoc = null;
> -               Builder builder = new Builder();
> -        try { xslDoc = builder.build(xslPath); }
> -        catch (ValidityException e1) { e1.printStackTrace(); }
> -        catch (ParsingException e1) { e1.printStackTrace(); }
> -        catch (IOException e1) { e1.printStackTrace(); }
> -
> -        // Create the transform.
> -        XSLTransform xslt = null;
> -        try { xslt = new XSLTransform(xslDoc); }
> -        catch (XSLException e1) { e1.printStackTrace(); }
> -
> -        // Loop through the documents, write to file, count images in
> each.
> -        for(int curDoc = 0; curDoc < docs.size(); curDoc++)
> -        {
> -               // Finally transform the document.
> -            Nodes newDocNodes = null;
> -                       try { newDocNodes = xslt.transform(
> docs.get(curDoc)
> ); }
> -                       catch (XSLException e) { e.printStackTrace(); }
> -            Document transformedDoc =
> XSLTransform.toDocument(newDocNodes);
> -
> -               // Build string path.
> -               String outPath = workingDocPath.substring(0,
> workingDocPath.lastIndexOf(BBIni.getFileSep())) + BBIni.getFileSep() +
> Integer.toString(curDoc) + ".xhtml";
> -
> -               // Add path to list.
> -               epubFileList.add(outPath);
> -
> -               // Count the images in this document.
> -               addToNumImgsList(docs.get(curDoc));
> -
> -               // Write file.
> -               fu.createXMLFile( transformedDoc, outPath );
> -//             fu.createXMLFile( docs.get(curDoc), outPath );
> -
> -        } // for(int curDoc...
> -
> -        // Create the opf file.
> -        return epubFileList;
> -
> -       } // writeNimasSegments()
> +//        // Loop through the documents, write to file, count images in
> each.
> +//        for(int curDoc = 0; curDoc < docs.size(); curDoc++)
> +//        {
> +//             // Finally transform the document.
> +//            Nodes newDocNodes = null;
> +//                     try { newDocNodes = xslt.transform(
> docs.get(curDoc)
> ); }
> +//                     catch (XSLException e) { e.printStackTrace(); }
> +//            Document transformedDoc =
> XSLTransform.toDocument(newDocNodes);
> +//
> +//             // Build string path.
> +//             String outPath = workingDocPath.substring(0,
> workingDocPath.lastIndexOf(BBIni.getFileSep())) + BBIni.getFileSep() +
> Integer.toString(curDoc) + ".xhtml";
> +//
> +//             // Add path to list.
> +//             epubFileList.add(outPath);
> +//
> +//             // Count the images in this document.
> +//             addToNumImgsList(docs.get(curDoc));
> +//
> +//             // Write file.
> +//             fu.createXMLFile( transformedDoc, outPath );
> +////                   fu.createXMLFile( docs.get(curDoc), outPath );
> +//
> +//        } // for(int curDoc...
> +//
> +//        // Create the opf file.
> +//        return epubFileList;
> +//
> +//     } // writeNimasSegments()
>
>
>
> ////////////////////////////////////////////////////////////////////////////
> /
>         // Helper: Uses list created with manageNimas() to create an OPF
> file for
> =======================================
> --- /src/main/org/brailleblaster/perspectives/braille/Manager.java      Thu
> Jul
> 31 15:34:17 2014 UTC
> +++ /src/main/org/brailleblaster/perspectives/braille/Manager.java      Thu
> Jul
> 31 18:51:41 2014 UTC
> @@ -749,8 +749,7 @@
>             if (arch.getCurrentConfig().equals("epub.cfg")){
>                 text.insertNewNode(list.get(posList.get(posList.size() -
> 1)).end,"aside");
>             }
> -           else{
> -
> +           else{
>                     text.insertNewNode(list.get(posList.get(posList.size()
> -
>
> 1)).end,"prodnote");
>             }
>
> @@ -837,12 +836,11 @@
>                         group.setRedraw(false);
>                         if (message.getValue("multiSelect").equals(false))
> {
>                                 handleStyleCursorSelected(message);
> -
>                         } else {
>                                 handleStyleMultiSelected(message);
>                         }
> -
> -               } else
> +               }
> +               else
>                         new Notify(lh.localValue("nothingToApply"));
>         }
>         /***
> @@ -853,7 +851,7 @@
>                 Element parent = parentStyle(list.getCurrent(), message);
>                 ArrayList<TextMapElement> itemList =
> list.findTextMapElements(
>                                 list.getCurrentIndex(), parent, true);
> -               adjustStyle(itemList, message);
> +               adjustStyle(itemList, message,parent);
>
>         }
>         /***
> @@ -881,7 +879,7 @@
>                                 Element parent = parentStyle(tempElement,
> styleMessage);
>
>                                 ArrayList<TextMapElement> itemList =
> list.findTextMapElements(list.getNodeIndex(tempElement), parent, true);
> -                               adjustStyle( itemList,styleMessage);
> +                               adjustStyle( itemList,styleMessage,parent);
>                         }
>                 }
>
> @@ -892,7 +890,7 @@
>          * @param message : passing information regarding styles
>          */
>
> -       private void adjustStyle(ArrayList<TextMapElement> itemList,
> Message
>
> message) {
> +       private void adjustStyle(ArrayList<TextMapElement> itemList,
> Message
>
> message,Element parent) {
>                 int start = list.indexOf(itemList.get(0));
>                 int end = list.indexOf(itemList.get(itemList.size() - 1));
>                 int origPos =
> list.get(list.getNodeIndex(itemList.get(0))).start;
> @@ -928,11 +926,84 @@
>                                         (Integer)
> message.getValue("linesAfterOffset"), origPos);
>
>                 treeView.adjustItemStyle(list.getCurrent());
> +
> if(((Styles)message.getValue("Style")).getName().equals("boxline"))
> +                       createBoxline(parent, message, itemList);
>                 group.setRedraw(true);
>
>         }
>
>
> +
> +       /** Wraps a block level element in the appropriate tag then
> translates
> and adds boxline brl top and bottom nodes
> +        * @param p: parent of text nodes, the block element to be wrapped
> in a
> boxline
> +        * @param m: message passed to views containing offset positions
> +        * @param itemList: arraylist containing text nodes of the block
> element
> +        */
> +       private void createBoxline(Element p, Message m,
> ArrayList<TextMapElement> itemList){
> +               Element wrapper = document.wrapElement(p, "boxline");
> +               if(wrapper != null){
> +                       Element boxline =
> document.translateElement((Element)wrapper.copy());
> +                       System.out.println(boxline.toXML().toString());
> +                       int startPos = list.indexOf(itemList.get(0));
> +
> +                       //find start position
> +                       int start, brailleStart;
> +                       if(m.contains("previousStyle") &&
> ((Styles)m.getValue("previousStyle")).contains(StylesType.linesBefore)){
> +                               start = (Integer)m.getValue("prev");
> +                               brailleStart =
> (Integer)m.getValue("braillePrev");
> +                       }
> +                       else {
> +                               start = itemList.get(0).start;
> +                               brailleStart =
> itemList.get(0).brailleList.getFirst().start;
> +                       }
> +
> +                       //insert top boxline
> +                       wrapper.insertChild(boxline.removeChild(0), 0);
> +                       BrlOnlyMapElement b1 =  new
> BrlOnlyMapElement(wrapper.getChild(0),
> (Element)wrapper);
> +                       b1.setOffsets(start, start + b1.textLength());
> +                       b1.setBrailleOffsets(brailleStart, brailleStart +
> b1.getText().length());
> +                       vi.addElementToSection(list, b1, startPos);
> +
> +                       //set text
> +                       text.insertText(start, list.get(startPos).getText()
> + "\n");
> +                       braille.insertText(brailleStart,
> list.get(startPos).brailleList.getFirst().value() + "\n");
> +                       list.shiftOffsetsFromIndex(startPos + 1,
> list.get(startPos).getText().length() + 1,
> list.get(startPos).brailleList.getFirst().value().length() + 1,
> list.get(startPos + 1).start);
> +
> +                       //find end position
> +                       int endPos =
> list.indexOf(itemList.get(itemList.size() - 1)) + 1;
> +                       int end, brailleEnd;
> +                       if(m.contains("previousStyle") &&
> ((Styles)m.getValue("previousStyle")).contains(StylesType.linesAfter)){
> +                               end = (Integer)m.getValue("next") +
> b1.getText().length() + 1;
> +                               brailleEnd =
> (Integer)m.getValue("brailleNext") +
> b1.getText().length() + 1;
> +                       }
> +                       else {
> +                               end = list.get(endPos - 1).end;
> +                               brailleEnd = itemList.get(itemList.size() -
>
> 1).brailleList.getLast().end;
> +                       }
> +
> +                       //insert bottom boxline
> +
> wrapper.appendChild(boxline.removeChild(boxline.getChildCount() - 1));
> +                       BrlOnlyMapElement b2 =  new
> BrlOnlyMapElement(wrapper.getChild(wrapper.getChildCount() - 1),
> (Element)wrapper);
> +                       b2.setOffsets(end + 1, end + 1 + b2.textLength());
> +                       b2.setBrailleOffsets(brailleEnd + 1, brailleEnd + 1
> +
> b2.getText().length());
> +                       vi.addElementToSection(list, b2, endPos);
> +
> +                       //set text
> +                       text.insertText(end, "\n" +
> list.get(endPos).getText());
> +                       braille.insertText(brailleEnd, "\n" +
> list.get(endPos).brailleList.getFirst().value());
> +                       list.shiftOffsetsFromIndex(endPos + 1,
> list.get(endPos).getText().length() + 1,
> list.get(endPos).brailleList.getFirst().value().length() + 1,
> list.get(endPos).start);
> +
> +                       //remove items from tree
> +                       for(int i = 0; i < itemList.size(); i++){
> +                               treeView.removeItem(itemList.get(i), new
> Message(null));
> +                       }
> +
> +                       //add aside or sidebar to tree
> +                       treeView.newTreeItem(list.get(startPos),
> treeView.getSelectionIndex(),
> 0);
> +
> handleSetCurrent(Message.createSetCurrentMessage(Sender.TREE,
> list.get(list.getCurrentIndex() + 1).start, false));
> +
> dispatch(Message.createUpdateCursorsMessage(Sender.TREE));
> +               }
> +       }
>
>         public void saveAs(){
>                 BBFileDialog dialog = new BBFileDialog(wp.getShell(),
> SWT.SAVE,
> arch.getFileTypes(), arch.getFileExtensions());
> =======================================
> ---
>
> /src/main/org/brailleblaster/perspectives/braille/stylepanel/StyleManager.ja
> va
> Thu Jul 31 15:38:44 2014 UTC
> +++
>
> /src/main/org/brailleblaster/perspectives/braille/stylepanel/StyleManager.ja
> va
> Thu Jul 31 18:51:41 2014 UTC
> @@ -50,7 +50,7 @@
>   public class StyleManager{
>
>       private StyleTable table;
> -    private EditPanel editor;
> +    private StylePanel editor;
>       private String configFile;
>       Manager dm;
>       TextMapElement t;
> @@ -83,7 +83,10 @@
>         lastSelection = table.getTable().getSelectionIndex();
>         String style = table.getTable().getSelection()[0].getText(1);
>         this.table.dispose();
> -       editor = new EditStyleView(this, dm.getGroup(),
> semanticsTable.get(style));
> +       if(semanticsTable.get(style).getName().equals("boxline"))
> +               editor = new EditBoxLineView(this, dm.getGroup(),
> semanticsTable.get(style));
> +       else
> +               editor = new EditStyleView(this, dm.getGroup(),
> semanticsTable.get(style));
>         dm.setTabList();
>       }
>
> @@ -102,7 +105,7 @@
>       public void apply(String item){
>         Message m = new Message(BBEvent.UPDATE_STYLE);
>         Styles style = semanticsTable.get(item);
> -
> +
>         if(style != null){
>                 m.put("Style", style);
>                 if(dm.getText().isMultiSelected()==true)
> =======================================
> ---
> /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> Thu Jul 31 15:34:17 2014 UTC
> +++
> /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> Thu Jul 31 18:51:41 2014 UTC
> @@ -826,7 +826,7 @@
>                         handleLineWrap(start, reformattedText, margin,
> style.contains(StylesType.firstLineIndent));
>                 }
>
> -               if(isFirst(n) &&
> style.contains(StylesType.firstLineIndent))
> +               if(!(list.get(listIndex) instanceof BrlOnlyMapElement) &&
> isFirst(n) &&
> style.contains(StylesType.firstLineIndent))
>                         setFirstLineIndent(start, style);
>
>                 if(style.contains(StylesType.format))
> @@ -1515,86 +1515,89 @@
>                 //Get previous style for comparison on adding or removing
> lines before
> or after
>                 Styles style = (Styles)m.getValue("style");
>                 Styles previousStyle = (Styles)m.getValue("previousStyle");
> -
> +               boolean boxline = style.getName().equals("boxline");
> +
>                 setListenerLock(true);
>                 //Reset indent, alignment, and emphasis
> -               view.setLineIndent(view.getLineAtOffset(start),
> getLineNumber(start,
> view.getTextRange(start, (end - start))), 0);
> -               view.setLineAlignment(view.getLineAtOffset(start),
> getLineNumber(start,
> view.getTextRange(start, (end - start))), SWT.LEFT);
> -               setFontStyleRange(start, end - start, new StyleRange());
> +               if(!boxline){
> +                       view.setLineIndent(view.getLineAtOffset(start),
> getLineNumber(start,
> view.getTextRange(start, (end - start))), 0);
> +                       view.setLineAlignment(view.getLineAtOffset(start),
> getLineNumber(start,
> view.getTextRange(start, (end - start))), SWT.LEFT);
> +                       setFontStyleRange(start, end - start, new
> StyleRange());
>
> -               if(!style.contains(StylesType.linesBefore) &&
> previousStyle.contains(StylesType.linesBefore))
> -                       removeLinesBefore(m);
> +                       if(!style.contains(StylesType.linesBefore) &&
> previousStyle.contains(StylesType.linesBefore))
> +                               removeLinesBefore(m);
>
> -               if(!style.contains(StylesType.linesAfter) &&
> previousStyle.contains(StylesType.linesAfter))
> -                       removeLinesAfter(m);
> +                       if(!style.contains(StylesType.linesAfter) &&
> previousStyle.contains(StylesType.linesAfter))
> +                               removeLinesAfter(m);
> +               }
> +
>                 start = (Integer)m.getValue("start");
>                 end = (Integer)m.getValue("end");
>                 int prev = (Integer)m.getValue("prev");
>                 int next = (Integer)m.getValue("next");
> -
> -               for (Entry<StylesType, Object> entry : style.getEntrySet())
> {
> -                       switch(entry.getKey()){
> -                               case linesBefore:
> -                                       int linesBeforeOffset;
> -                                       if(start != prev){
> -                                               view.replaceTextRange(prev,
> (start - prev), "");
> -                                               length = start - prev;
> -                                       }
> -                                       spaces =
> Integer.valueOf((String)entry.getValue());
> +               if(!boxline){
> +                       for (Entry<StylesType, Object> entry :
> style.getEntrySet()) {
> +                               switch(entry.getKey()){
> +                                       case linesBefore:
> +                                               int linesBeforeOffset;
> +                                               if(start != prev){
> +
> view.replaceTextRange(prev, (start - prev), "");
> +                                                       length = start -
> prev;
> +                                               }
> +                                               spaces =
> Integer.valueOf((String)entry.getValue());
>
> -                                       textBefore =
> makeInsertionString(spaces,'\n');
> -                                       linesBeforeOffset = spaces -
> length;
> +                                               textBefore =
> makeInsertionString(spaces,'\n');
> +                                               linesBeforeOffset = spaces
> -
> length;
>
> -                                       insertBefore(start - (start -
> prev),
> textBefore);
> -                                       m.put("linesBeforeOffset",
> linesBeforeOffset);
> -                                       start += linesBeforeOffset;
> -                                       end += linesBeforeOffset;
> -                                       if(next != -1)
> -                                               next += linesBeforeOffset;
> -                                       break;
> -                               case linesAfter:
> -                                       length = 0;
> -                                       int linesAfterOffset;
> -                                       if(end != next && next != 0){
> -                                               view.replaceTextRange(end,
> (next - end), "");
> -                                               length = next - end;
> -                                       }
> +                                               insertBefore(start - (start
> - prev), textBefore);
> +                                               m.put("linesBeforeOffset",
> linesBeforeOffset);
> +                                               start += linesBeforeOffset;
> +                                               end += linesBeforeOffset;
> +                                               if(next != -1)
> +                                                       next +=
> linesBeforeOffset;
> +                                               break;
> +                                       case linesAfter:
> +                                               length = 0;
> +                                               int linesAfterOffset;
> +                                               if(end != next && next !=
> 0){
> +
> view.replaceTextRange(end, (next - end), "");
> +                                                       length = next -
> end;
> +                                               }
>
> -                                       spaces =
> Integer.valueOf((String)entry.getValue());
> -                                       textBefore =
> makeInsertionString(spaces,'\n');
> -                                       insertBefore(end, textBefore);
> -                                       linesAfterOffset = spaces - length;
> -                                       m.put("linesAfterOffset",
> linesAfterOffset);
> -                                       break;
> -                               case format:
> -                                       setAlignment(start, end, style);
> -                                       break;
> -                               case firstLineIndent:
> -
> if(Integer.valueOf((String)entry.getValue()) > 0 ||
> style.contains(StylesType.leftMargin))
> -                                               setFirstLineIndent(start,
> style);
> -                                       break;
> -                               case leftMargin:
> -
> if(style.contains(StylesType.firstLineIndent))
> -                                               handleLineWrap(start,
> view.getTextRange(start, (end - start)),
> Integer.valueOf((String)entry.getValue()), true);
> -                                       else
> -                                               handleLineWrap(start,
> view.getTextRange(start, (end - start)),
> Integer.valueOf((String)entry.getValue()), false);
> -                                       break;
> +                                               spaces =
> Integer.valueOf((String)entry.getValue());
> +                                               textBefore =
> makeInsertionString(spaces,'\n');
> +                                               insertBefore(end,
> textBefore);
> +                                               linesAfterOffset = spaces -
> length;
> +                                               m.put("linesAfterOffset",
> linesAfterOffset);
> +                                               break;
> +                                       case format:
> +                                               setAlignment(start, end,
> style);
> +                                               break;
> +                                       case firstLineIndent:
> +
> if(Integer.valueOf((String)entry.getValue()) > 0 ||
> style.contains(StylesType.leftMargin))
> +
> setFirstLineIndent(start, style);
> +                                               break;
> +                                       case leftMargin:
> +
> if(style.contains(StylesType.firstLineIndent))
> +
> handleLineWrap(start, view.getTextRange(start, (end - start)),
> Integer.valueOf((String)entry.getValue()), true);
> +                                               else
> +
> handleLineWrap(start, view.getTextRange(start, (end - start)),
> Integer.valueOf((String)entry.getValue()), false);
> +                                               break;
> +                                       default:
> +                                               break;
> +                               }
>
> -                               default:
> -                                       break;
> -                       }
> -
> -                       int offset = (Integer)m.getValue("offset");
> +                               int offset = (Integer)m.getValue("offset");
>
> -                       //inline elements may have different emphasis, so
> all must be check
> seperately
> -                       for(int i = 0; i < list.size(); i++){
> -                               Styles nodeStyle =
> stylesTable.makeStylesElement(list.get(i).parentElement(), list.get(i).n);
> -                               if(nodeStyle.contains(StylesType.emphasis))
> -                                       setFontStyleRange(list.get(i).start
> + offset, (list.get(i).end +
> offset) - (list.get(i).start + offset),
> (StyleRange)nodeStyle.get(StylesType.emphasis));
> +                               //inline elements may have different
> emphasis, so all must be check
> seperately
> +                               for(int i = 0; i < list.size(); i++){
> +                                       Styles nodeStyle =
> stylesTable.makeStylesElement(list.get(i).parentElement(), list.get(i).n);
> +
> if(nodeStyle.contains(StylesType.emphasis))
> +
> setFontStyleRange(list.get(i).start + offset, (list.get(i).end +
> offset) - (list.get(i).start + offset),
> (StyleRange)nodeStyle.get(StylesType.emphasis));
> +                               }
>                         }
> -
> +                       setListenerLock(false);
>                 }
> -               setListenerLock(false);
>         }
>
>         //private helper method used by adjust style
>
>
> ============================================================================
> ==
> Revision: 1e17b7a92010
> Branch:   default
> Author:   Sahel "sahel.mastoureshgh@xxxxxxxxx"
> Date:     Thu Jul 31 18:54:23 2014 UTC
> Log:      Fixed merge conflicts second
> http://code.google.com/p/brailleblaster/source/detail?r=1e17b7a92010
>
> Modified:
>   /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> =======================================
> ---
> /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> Thu Jul 31 18:51:41 2014 UTC
> +++
> /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java
>
> Thu Jul 31 18:54:23 2014 UTC
> @@ -103,7 +103,12 @@
>         private PaintObjectListener paintObjListener;
>         private int originalStart, originalEnd;
>         private TextMapElement currentElement;
> +
> +       int startSelection;
> +       int endSelection;
> +
>         private boolean multiSelected;
> +
>
>         public TextView (Manager manager, Group documentWindow,
> BBSemanticsTable
> table) {
>                 super (manager, documentWindow, LEFT_MARGIN, RIGHT_MARGIN,
> TOP_MARGIN,
> BOTTOM_MARGIN, table);
> @@ -119,7 +124,16 @@
>                 view.addSelectionListener(selectionListener = new
> SelectionAdapter(){
>                         @Override
>                         public void widgetSelected(SelectionEvent e) {
> +
>                                 selectionArray = view.getSelectionRanges();
> +                               //Added this part for start and end of text
> selection
> +                               for (int i = 0; i <
> selectionArray.length-1;
> i++) {
> +                                       startSelection=selectionArray[i];
> +
> endSelection=selectionArray[i]+selectionArray[i+1];
> +
> +
> +                            }
> +                                System.out.println(startSelection+"
> "+endSelection);
>                                 if(selectionArray[1] > 0){
>                                         multiSelected=true;
>                                         currentChar = ' ';
>
>
>

Other related posts: