[brailleblaster] push by Lord.Qua...@xxxxxxxxx - Begin style migration to UTD and breaking build. Added BBDocument.getE... on 2015-03-04 19:02 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Wed, 04 Mar 2015 19:02:23 +0000

Revision: feb2feafc7f5
Branch:   rt2111-styleConf
Author:   Leon Blakey <lblakey@xxxxxxx>
Date:     Wed Mar  4 18:12:09 2015 UTC
Log: Begin style migration to UTD and breaking build. Added BBDocument.getEngine(), replaced a few instances of Styles with IStyle, cleaned up some references
https://code.google.com/p/brailleblaster/source/detail?r=feb2feafc7f5

Modified:
 /src/main/org/brailleblaster/document/BBDocument.java
 /src/main/org/brailleblaster/perspectives/braille/Manager.java
/src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java /src/main/org/brailleblaster/perspectives/braille/eventQueue/StyleEvent.java
 /src/main/org/brailleblaster/perspectives/braille/messages/Message.java
 /src/main/org/brailleblaster/perspectives/braille/stylers/StyleHandler.java

=======================================
--- /src/main/org/brailleblaster/document/BBDocument.java Thu Feb 26 18:17:04 2015 UTC +++ /src/main/org/brailleblaster/document/BBDocument.java Wed Mar 4 18:12:09 2015 UTC
@@ -61,7 +61,7 @@
 import org.brailleblaster.perspectives.Controller;
 import org.brailleblaster.settings.SettingsManager;
 import org.brailleblaster.utd.UTDTranslationEngine;
-import org.brailleblaster.utd.config.StyleDefinitions;
+import org.brailleblaster.utd.config.XMLConfigHandler;
 import org.brailleblaster.util.CheckLiblouisutdmlLog;
 import org.brailleblaster.util.FileUtils;
 import org.brailleblaster.util.Notify;
@@ -89,21 +89,36 @@
        private String systemId;
        private String publicId;
        protected SettingsManager sm;
-       protected SemanticFileHandler semHandler;
        protected LocaleHandler lh;
-       protected UTDTranslationEngine engine;
+       protected final UTDTranslationEngine engine;
+       protected final XMLConfigHandler utdConfig;
+
+       //Style TODO: Once this class is unit tested absorb the other 
constructors
+       private BBDocument(Controller dm, boolean unused) {
+               this.dm = dm;
+
+               try {
+                       engine = new UTDTranslationEngine();
+                       //Style TODO: Somehow automagically load the correct 
config
+ utdConfig = new XMLConfigHandler(new File("utd-config"), "nimas", new File("utd-config/styleDefs.xml"));
+                       engine.setActionMap(utdConfig.loadActions());
+                       
engine.setStyleDefinitions(utdConfig.loadStyleDefinitions());
+                       
engine.setStyleMap(utdConfig.loadStyle(engine.getStyleDefinitions()));
+               } catch(Exception e) {
+                       throw new RuntimeException("Could not initialize UTD", 
e);
+               }
+       }

        /** Base constructor for initializing a new document
* @param dm: Document Manager for relaying information between DOM and view
         */
        public BBDocument(Controller dm){
-               this.dm = dm;
+               this(dm, true);
                lh = new LocaleHandler();
                missingSemanticsList = new ArrayList<String>();
                mistranslationList = new ArrayList<String>();
-               semHandler = new SemanticFileHandler(dm.getCurrentConfig());
                sm = new SettingsManager(dm.getCurrentConfig());
-               engine = new UTDTranslationEngine();
+
engine.getBrailleSettings().setMainTranslationTable(BBIni.getProgramDataPath() + BBIni.getFileSep() + "liblouis" + BBIni.getFileSep() + "tables" + BBIni.getFileSep() + "en-us-g2.ctb");
                engine.getBrailleSettings().setUseAsciiBraille(true);
        }
@@ -113,12 +128,11 @@
* @param doc: XOM Document, the DOM already built for the currently open document
         */
        public BBDocument(Controller dm, Document doc){
-               this.dm = dm;
+               this(dm, true);
                this.doc = doc;
                lh = new LocaleHandler();
                missingSemanticsList = new ArrayList<String>();
                mistranslationList = new ArrayList<String>();
-               semHandler = new SemanticFileHandler(dm.getCurrentConfig());
                sm = new SettingsManager(dm.getCurrentConfig());
        }

@@ -389,9 +403,10 @@
                else
                        fileName = dm.getWorkingPath();

- if(fu.exists(BBIni.getTempFilesPath() + BBIni.getFileSep() + fu.getFileName(fileName) + ".sem")){ - semFile = "semanticFiles "+ semHandler.getDefaultSemanticsFiles() + "," + BBIni.getTempFilesPath() + BBIni.getFileSep() + fu.getFileName(fileName) + ".sem" + "\n";
-               }
+               //Style TODO: depends on .sem
+// if(fu.exists(BBIni.getTempFilesPath() + BBIni.getFileSep() + fu.getFileName(fileName) + ".sem")){ +// semFile = "semanticFiles "+ semHandler.getDefaultSemanticsFiles() + "," + BBIni.getTempFilesPath() + BBIni.getFileSep() + fu.getFileName(fileName) + ".sem" + "\n";
+//             }

boolean result = lutdml.translateFile (config, inFile, filePath, logFile, semFile + "formatFor brf\n" + sm.getSettings(), 0);
                deleteFile(inFile);
@@ -580,7 +595,8 @@
        public void resetBBDocument(String config){
                deleteDOM();
                sm = new SettingsManager(config);
-               semHandler.resetSemanticHandler(config);
+               //Style TODO: reset
+               //semHandler.resetSemanticHandler(config);
        }


@@ -615,10 +631,6 @@
                else if(publicId == null && systemId != null)
d.setDocType(new DocType(this.getRootElement().getLocalName(), systemId));
        }
-
-       public SemanticFileHandler getSemanticFileHandler(){
-               return semHandler;
-       }

        /** Queries the document using xpath
         * @param query: xpath query
@@ -636,8 +648,8 @@
        public int getLinesPerPage(){
                return sm.getLinesPerPage();
        }
-
-       public StyleDefinitions getStyleDefinitions() {
-               return engine.getStyleDefinitions();
+
+       public UTDTranslationEngine getEngine() {
+               return engine;
        }
 }
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/Manager.java Tue Mar 3 19:40:45 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/Manager.java Wed Mar 4 18:12:09 2015 UTC
@@ -54,7 +54,6 @@
 import org.brailleblaster.embossers.EmbossersManager;
 import org.brailleblaster.localization.LocaleHandler;
 import org.brailleblaster.perspectives.Controller;
-import org.brailleblaster.perspectives.braille.document.BBSemanticsTable;
 import org.brailleblaster.perspectives.braille.document.BrailleDocument;
 import org.brailleblaster.perspectives.braille.eventQueue.EventFrame;
 import org.brailleblaster.perspectives.braille.eventQueue.QueueManager;
@@ -113,7 +112,6 @@
        StyleManager sm;
        FormLayout layout;

-       BBSemanticsTable styles;
        String documentName = null;
        String logFile = "Translate.log";
        String configSettings = null;
@@ -131,10 +129,10 @@
        //Constructor that sets things up for a new document.
        public Manager(WPManager wp, String docName) {
                super(wp);
+               logger.debug("WPManager {} docName {}", wp, docName);
                queueManager = new QueueManager();
                simBrailleDisplayed = loadSimBrailleProperty();
                fontManager = new FontManager(this);
-               styles = new BBSemanticsTable(BBIni.getDefaultConfigFile());
                documentName = docName;
                item = new TabItem(wp.getFolder(), 0);
                containerSash = new SashForm(wp.getFolder(),SWT.HORIZONTAL);
@@ -184,7 +182,6 @@
                this.arch = arch;
                simBrailleDisplayed = loadSimBrailleProperty();
                fontManager = new FontManager(this);
-               styles = new BBSemanticsTable(arch.getCurrentConfig());
                documentName = arch.getOrigDocPath();
                this.item = item;
                containerSash = new SashForm(wp.getFolder(),SWT.NONE);
@@ -204,11 +201,12 @@

                this.item.setControl(containerSash);
                initializeDocumentTab();
-               document = new BrailleDocument(this, styles);
+               document = new BrailleDocument(this);
                pb = new BBProgressBar(wp.getShell());
                fontManager.setFontWidth(simBrailleDisplayed);
                srch = new SearchDialog(wp.getShell(), SWT.NONE, this);
-               document = new BrailleDocument(this, doc, this.styles);
+               //This shouldn't be called twice
+               //document = new BrailleDocument(this, doc, this.styles);
                vi = ViewFactory.createUpdater(arch, document, text, braille, 
treeView);

                containerSash.setRedraw(false);
@@ -411,7 +409,7 @@
                        }
                }
                catch(Exception e){
-                       e.printStackTrace();
+                       //e.printStackTrace();
                        logger.error("Unforeseen Exception", e);
                }
        }
@@ -977,7 +975,8 @@
                                fileName = 
fu.getFileName(arch.getWorkingFilePath());

if(fu.exists(BBIni.getTempFilesPath() + BBIni.getFileSep() + fileName + ".sem")) - initializeAllViews(documentName, path, "semanticFiles " + document.getSemanticFileHandler().getDefaultSemanticsFiles() +"," + BBIni.getTempFilesPath() + BBIni.getFileSep() + fileName + ".sem\n");
+                               //Style TODO: Sem file dependency
+ initializeAllViews(documentName, path, /*"semanticFiles " + document.getSemanticFileHandler().getDefaultSemanticsFiles() +"," +*/ BBIni.getTempFilesPath() + BBIni.getFileSep() + fileName + ".sem\n");
                        else
                                initializeAllViews(documentName, path, null);

=======================================
--- /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Mon Feb 9 18:34:55 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Wed Mar 4 18:12:09 2015 UTC
@@ -23,20 +23,19 @@
import org.brailleblaster.perspectives.braille.mapping.elements.TextMapElement;
 import org.brailleblaster.perspectives.braille.mapping.maps.MapList;
 import org.brailleblaster.perspectives.braille.messages.Message;
+import org.brailleblaster.perspectives.braille.stylers.ElementUtils;
import org.brailleblaster.perspectives.braille.viewInitializer.ViewInitializer;
 import org.eclipse.swt.SWT;

 public class BrailleDocument extends BBDocument {
        private int idCount = -1;
-       private BBSemanticsTable table;

        /**Base constructor for initializing a new document
         * @param dm :Document Manager for interacting with views
         * @param table :Semantics table containing style information
         */
-       public BrailleDocument(Manager dm, BBSemanticsTable table) {
+       public BrailleDocument(Manager dm) {
                super(dm);
-               this.table = table;
        }

/** Base constructor for when perspectives are switched and the XOM Document is passed to a Document specific to the view
@@ -44,9 +43,8 @@
* @param doc :XOM Document, the DOM already built for the currently open document
         * @param table :Semantics table containing style information
         */
-       public BrailleDocument(Manager dm, Document doc, BBSemanticsTable 
table) {
+       public BrailleDocument(Manager dm, Document doc) {
                super(dm, doc);
-               this.table = table;
        }

        /** Method via which update and remove procedures are handled
@@ -108,8 +106,11 @@
         * @param elem : Name of element to insert
         */
public void insertElement(ViewInitializer vi, MapList list, TextMapElement current, int textOffset, int brailleOffset, int index,String elem){
-               String type = this.semHandler.getDefault(elem);
-               Element p = makeElement(elem, "semantics", "style," + type);
+ //Style TODO: There is no concept of looking up styles by element name in UTD
+//             String type = this.semHandler.getDefault(elem);
+//             Element p = makeElement(elem, "semantics", "style," + type);
+               Element p = makeElement(elem, "style", "");
+
                //Add new attribute for epub aside and for nimas prodnote
if ((elem.equalsIgnoreCase("prodnote") )||( elem.equalsIgnoreCase("aside"))){
                        p.addAttribute(new Attribute("render", "optional"));
@@ -119,14 +120,15 @@

                p.appendChild(new Text(""));

+               //Style TODO: What does this do
                Element parent = current.parentElement();
                int nodeIndex = 0;
-               if(table.getSemanticTypeFromAttribute(parent).equals("style")){
+               if(ElementUtils.containsStyle(parent)){
                        parent = (Element)parent.getParent();
                        nodeIndex = parent.indexOf(current.parentElement());
                }
                else {
-                       
while(table.getSemanticTypeFromAttribute(parent).equals("action")){
+                       while(ElementUtils.containsAction(parent)){
                                nodeIndex = parent.getParent().indexOf(parent);
                                parent = (Element)parent.getParent();
                        }
@@ -761,8 +763,11 @@
         */
        public Element getParent(Node n, boolean ignoreInlineElement){
                Element parent = (Element)n.getParent();
+ //Style TODO: This if could probably be removed as all calls set it to true
                if(ignoreInlineElement){
- while(attributeExists(parent, "semantics") && parent.getAttribute("semantics").getValue().contains("action")){
+                       //Style TODO: why does this ignore actions?
+ //while(attributeExists(parent, "semantics") && parent.getAttribute("semantics").getValue().contains("action")){
+                       while(attributeExists(parent, "action")){
                                parent = (Element)parent.getParent();
                        }
                }
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/StyleEvent.java Wed Feb 4 13:36:20 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/StyleEvent.java Wed Mar 4 18:12:09 2015 UTC
@@ -1,13 +1,14 @@
 package org.brailleblaster.perspectives.braille.eventQueue;

-import org.brailleblaster.perspectives.braille.document.BBSemanticsTable.Styles;
+import org.brailleblaster.utd.Style;
+

 public class StyleEvent extends Event {
        int listIndex, sectionIndex;
-       Styles style;
+       Style style;
        String config;

- public StyleEvent(int listIndex, int sectionIndex, int textOffset, int brailleOffset, Styles style, String config){ + public StyleEvent(int listIndex, int sectionIndex, int textOffset, int brailleOffset, Style style, String config){
                super(EventTypes.Style_Change, textOffset, brailleOffset);
                this.listIndex = listIndex;
                this.sectionIndex = sectionIndex;
@@ -15,7 +16,7 @@
                this.config = config;
        }

-       public Styles getStyle(){
+       public Style getStyle(){
                return style;
        }

=======================================
--- /src/main/org/brailleblaster/perspectives/braille/messages/Message.java Mon Feb 16 18:10:33 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/messages/Message.java Wed Mar 4 18:12:09 2015 UTC
@@ -33,11 +33,13 @@
 import java.util.ArrayList;
 import java.util.HashMap;

-import org.brailleblaster.perspectives.braille.document.BBSemanticsTable.Styles; import org.brailleblaster.perspectives.braille.mapping.elements.TextMapElement;
 import org.eclipse.swt.custom.ExtendedModifyEvent;

 import nu.xom.Text;
+import org.brailleblaster.perspectives.braille.document.BBSemanticsTable;
+import org.brailleblaster.utd.IStyle;
+import org.brailleblaster.utd.Style;


 //Passes data between different views and the parent DocumentManager class
@@ -208,7 +210,7 @@
* @param isBoxline: signifies whether selection is adding or removing a boxline, since boxline are handled differently than other styles
         * @return
         */
- public static Message createUpdateStyleMessage(Styles style, boolean multiSelect, boolean isBoxline){ + public static Message createUpdateStyleMessage(IStyle style, boolean multiSelect, boolean isBoxline){
                Message m = new Message(BBEvent.UPDATE_STYLE);
                m.put("Style", style);
                m.put("multiSelect", multiSelect);
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/stylers/StyleHandler.java Mon Feb 16 18:10:33 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/stylers/StyleHandler.java Wed Mar 4 18:12:09 2015 UTC
@@ -6,13 +6,10 @@

 import nu.xom.Attribute;
 import nu.xom.Element;
-
 import org.brailleblaster.document.ConfigFileHandler;
+
 import org.brailleblaster.perspectives.braille.Manager;
-import org.brailleblaster.perspectives.braille.document.BBSemanticsTable;
 import org.brailleblaster.perspectives.braille.document.BrailleDocument;
-import org.brailleblaster.perspectives.braille.document.BBSemanticsTable.Styles; -import org.brailleblaster.perspectives.braille.document.BBSemanticsTable.StylesType;
 import org.brailleblaster.perspectives.braille.eventQueue.Event;
 import org.brailleblaster.perspectives.braille.eventQueue.EventFrame;
 import org.brailleblaster.perspectives.braille.eventQueue.EventTypes;
@@ -26,21 +23,23 @@
 import org.brailleblaster.perspectives.braille.messages.Message;
 import org.brailleblaster.perspectives.braille.messages.Sender;
import org.brailleblaster.perspectives.braille.viewInitializer.ViewInitializer;
+import org.brailleblaster.utd.IStyle;
+import org.brailleblaster.utd.Style;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyleRange;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;

 public class StyleHandler extends Handler{
-
-       BrailleDocument document;
-       BBSemanticsTable semanticsTable;
+ private static final Logger log = LoggerFactory.getLogger(StyleHandler.class);
+       private final BrailleDocument document;
        String configFile;

        EventFrame frame;
-
+
        public StyleHandler(Manager manager, ViewInitializer vi, MapList list){
                super(manager, vi, list);
                this.document = manager.getDocument();
-               this.semanticsTable = manager.getStyleTable();
                this.configFile = manager.getCurrentConfig();
        }

@@ -77,22 +76,17 @@

                                Element e = (Element)event.getNode();
                                String semantic = 
e.getAttributeValue(SEMANTICS).split(",")[1];
-                               Styles style = 
manager.getStyleTable().get(semantic);
+                               log.debug("Updating style " + semantic);
+ IStyle style = document.getEngine().getStyleDefinitions().getStyleByName(semantic); Message message = Message.createUpdateStyleMessage(style, false, false);
                                handleStyleSingleSelected(message);
                                tree.rebuildTree(event.getTreeIndex());
                        }
                        else {
                                StyleEvent ev = (StyleEvent)f.pop();
-                               try {
-                                       Styles oldStyle = 
semanticsTable.get(ev.getStyle().getName()).clone();
- ConfigFileHandler handler = new ConfigFileHandler(configFile, manager.getWorkingPath());
-                               handler.updateDocumentStyle(ev.getStyle());
- semanticsTable.resetStyleTable(configFile, manager.getWorkingPath());
-                               addEditEvent(list.get(ev.getListIndex()), 
oldStyle);
-                               } catch (CloneNotSupportedException e) {
-                                       e.printStackTrace();
-                               }
+                               log.debug("Copying style??? " + 
ev.getStyle().getName());
+ Style newStyle = document.getEngine().getStyleDefinitions().addStyleCopy(ev.getStyle() + "_new", ev.getStyle());
+                           addEditEvent(list.get(ev.getListIndex()), newStyle);
                        }
                }
                
manager.dispatch(Message.createUpdateCursorsMessage(Sender.TREE));
@@ -129,7 +123,7 @@
                while (itr.hasNext()) {
                        TextMapElement tempElement= itr.next();
if( (!((tempElement instanceof BrlOnlyMapElement) || (tempElement instanceof PageMapElement)))){ - Message styleMessage = Message.createUpdateStyleMessage((Styles)message.getValue("Style"), (Boolean)message.getValue("multiSelect"), (Boolean)message.getValue("isBoxline")); + Message styleMessage = Message.createUpdateStyleMessage((Style)message.getValue("Style"), (Boolean)message.getValue("multiSelect"), (Boolean)message.getValue("isBoxline"));
                                Element parent = parentStyle(tempElement, 
styleMessage);
                                parents.add(parent);
ArrayList<TextMapElement> itemList = list.findTextMapElements(list.getNodeIndex(tempElement), parent, true);
@@ -150,8 +144,7 @@
                else
                        parent = document.getParent(current.n, true);

-               BBSemanticsTable styles = manager.getStyleTable();
- message.put("previousStyle", styles.get(styles.getKeyFromAttribute(parent))); + message.put("previousStyle", document.getEngine().getStyleDefinitions().getStyleByName(parent.getAttributeValue("style")));
                return parent;
        }

@@ -299,14 +292,16 @@
     }

     private void apply(String item){
-       Styles style = semanticsTable.get(item);
+       //Styles style = semanticsTable.get(item);
+ IStyle style = document.getEngine().getStyleDefinitions().getStyleByName(item);

-       if(style != null){
+       //if(style != null){
+                       //Umm: Keith was talking about removing box stuff from 
style
                boolean isBoxLine = style.getName().equals("boxline");
Message m = Message.createUpdateStyleMessage(style, text.isMultiSelected(), isBoxLine);
                m.put("Style", style);
                updateStyle(m);
-       }
+       //}
     }

     private void addModelEvent(ModelEvent e){
@@ -318,11 +313,11 @@
        else
                frame.addEvent(e);
     }
-    private void addStyleEditEvent(TextMapElement t, Styles style){
+    private void addStyleEditEvent(TextMapElement t, Style style){
manager.peekUndoEvent().addEvent(new StyleEvent(list.indexOf(t), vi.getStartIndex(), t.start, t.brailleList.getFirst().start, style, configFile));
     }

-    private void addEditEvent(TextMapElement t, Styles style){
+    private void addEditEvent(TextMapElement t, Style style){
frame.addEvent(new StyleEvent(list.indexOf(t), vi.getStartIndex(), t.start, t.brailleList.getFirst().start, style, configFile));
     }
 }

Other related posts:

  • » [brailleblaster] push by Lord.Qua...@xxxxxxxxx - Begin style migration to UTD and breaking build. Added BBDocument.getE... on 2015-03-04 19:02 GMT - brailleblaster