[brailleblaster] push by cknapp.c...@xxxxxxxxx - Adding classes on 2015-02-13 15:16 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Fri, 13 Feb 2015 15:16:37 +0000

Revision: ee81d8aff279
Branch:   rt2091-tPagesGui
Author:   Corey Knapp <cknapp.code@xxxxxxxxx>
Date:     Fri Feb 13 15:16:10 2015 UTC
Log:      Adding classes
https://code.google.com/p/brailleblaster/source/detail?r=ee81d8aff279

Added:
 /src/main/org/brailleblaster/tpages/TPagesDialog.java
 /src/main/org/brailleblaster/tpages/TPagesGenerator.java

=======================================
--- /dev/null
+++ /src/main/org/brailleblaster/tpages/TPagesDialog.java Fri Feb 13 15:16:10 2015 UTC
@@ -0,0 +1,315 @@
+package org.brailleblaster.tpages;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.brailleblaster.perspectives.braille.Manager;
+import org.brailleblaster.tpages.TPagesGenerator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Dialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Text;
+
+public class TPagesDialog extends Dialog{
+       private Manager m;
+       private Shell shlTPages;
+       private Object result;
+       private Display display;
+       final int TEXT_BOX_WIDTH = 500;
+       final int LABEL_WIDTH = 150;
+       TPagesGenerator tpGenerator;
+       HashMap<String, String> xmlmap;
+
+ public TPagesDialog(Shell parent, int style, Manager brailleViewController){
+               super(parent, style);
+               setText("Transcriber-Generated Pages");
+               m = brailleViewController;
+       }
+
+       public Object open(){
+               tpGenerator = new TPagesGenerator();
+               if(!tpGenerator.checkForFile("filename")){
+                       tpGenerator.createNewTPageXML();
+               }
+               tpGenerator.openTPageXML("filename");
+               xmlmap = tpGenerator.getXmlMap();
+               createContents();
+
+               shlTPages.open();
+               shlTPages.layout();
+
+               display = getParent().getDisplay();
+               while(!shlTPages.isDisposed()){
+                       if (!display.readAndDispatch()) display.sleep();
+               }
+
+               return result;
+       }
+
+       public void createContents(){
+               shlTPages = new Shell(getParent(), SWT.DIALOG_TRIM);
+               shlTPages.setText("Transcriber-Generated Pages");
+               shlTPages.setVisible(true);
+               shlTPages.setLayout(new GridLayout(5,true));
+
+               GridData tfData = newTpData(5);
+               TabFolder folder = new TabFolder(shlTPages, SWT.NONE);
+               folder.setLayoutData(tfData);
+
+               TabItem titleTab = new TabItem(folder, SWT.NONE);
+               titleTab.setText("Title Page(s)");
+
+               TabItem symbolsTab = new TabItem(folder, SWT.NONE);
+               symbolsTab.setText("Special Symbols");
+
+               /////////////////////////////
+               ///////Title Page Tab////////
+               /////////////////////////////
+               Composite titleComposite = new Composite(folder, SWT.NONE);
+               GridLayout titlePageLayout = new GridLayout(2,false);
+               titleComposite.setLayout(new RowLayout(SWT.VERTICAL));
+
+               Group titleGroup = new Group(titleComposite, SWT.NONE);
+               titleGroup.setText("Title");
+               titleGroup.setLayout(titlePageLayout);
+
+               createLabel(titleGroup, "Title", 1);
+               final Text titleText = createText(titleGroup, 1, "title");
+
+               createLabel(titleGroup, "Grade Level", 1);
+               final Text gradeLevelText = createText(titleGroup, 1, 
"gradelevel");
+
+               createLabel(titleGroup, "Subtitle", 1);
+               final Text subtitleText = createText(titleGroup, 1, "subtitle");
+
+               createLabel(titleGroup, "Series Name", 1);
+               final Text seriesText = createText(titleGroup, 1, "seriesname");
+
+               createLabel(titleGroup, "Edition Name or Number", 1);
+               final Text editionText = createText(titleGroup, 1, 
"editionname");
+
+               Group authorGroup = new Group(titleComposite, SWT.NONE);
+               authorGroup.setText("Author");
+               authorGroup.setLayout(new GridLayout(2,false));
+
+               createLabel(authorGroup, "Author(s)", 1);
+ final Text authorText = new Text(authorGroup, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
+               GridData newData = newTpData(1);
+               newData.widthHint = TEXT_BOX_WIDTH;
+               newData.heightHint = 70;
+               if(xmlmap.get("authors")!=null)
+                       authorText.setText(xmlmap.get("authors").replaceAll(";", 
"\r\n"));
+               authorText.setLayoutData(newData);
+
+               createLabel(authorGroup, "Translator", 1);
+               final Text translatorText = createText(authorGroup, 1, 
"translator");
+
+               Group publisherGroup = new Group(titleComposite, SWT.NONE);
+               publisherGroup.setText("Publisher");
+               publisherGroup.setLayout(new GridLayout(2,false));
+
+               createLabel(publisherGroup, "Permission", 1);
+               final Combo permissionCombo = new Combo(publisherGroup, 
SWT.READ_ONLY);
+               permissionCombo.setLayoutData(newTpData(1));
+ permissionCombo.setItems(new String[]{"Published by", "With permission of the publisher,"}); + if (xmlmap.get("pubpermission").equals("0")|| xmlmap.get("pubpermission").equals("1"))
+                       
permissionCombo.select(Integer.parseInt(xmlmap.get("pubpermission")));
+               else
+                       permissionCombo.select(0);
+
+               createLabel(publisherGroup, "Publisher", 1);
+               final Text publisherText = createText(publisherGroup, 1, 
"publisher");
+
+               createLabel(publisherGroup, "City and State", 1);
+               final Text pubLocationText = createText(publisherGroup, 1, 
"location");
+
+               createLabel(publisherGroup, "Website", 1);
+               final Text pubWebsiteText = createText(publisherGroup, 1, 
"website");
+
+               Group printGroup = new Group (titleComposite, SWT.NONE);
+               printGroup.setText("Printing Info");
+               printGroup.setLayout(new GridLayout(2,false));
+
+               final Button copyrightButton = new Button(printGroup, 
SWT.CHECK);
+               copyrightButton.setText("Copyright");
+ copyrightButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false, 1, 1));
+               if(xmlmap.get("copyrighted")!=null){
+                       
copyrightButton.setSelection(xmlmap.get("copyrighted").equals("true"));
+               } else{
+                       copyrightButton.setSelection(true);
+               }
+               final Button copySymbolButton = new Button(printGroup, 
SWT.CHECK);
+               copySymbolButton.setText("Copyright Symbol");
+ copySymbolButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false, 1, 1));
+               if(xmlmap.get("copyrightsymbol")!=null){
+ copySymbolButton.setSelection(xmlmap.get("copyrightsymbol").equals("true"));
+               } else{
+                       copySymbolButton.setSelection(true);
+               }
+
+               createLabel(printGroup, "Copyright Date", 1);
+               final Text copyDateText = createText(printGroup, 1, 
"copyrightdate");
+
+               createLabel(printGroup, "Copyright Text", 1);
+               final Text copyText = createText(printGroup, 1, 
"copyrighttext");
+
+               createLabel(printGroup, "Reproduction Notice", 1);
+               final Text reproText = createText(printGroup, 1, "repronotice");
+ //reproText.setText("Further reproduction or distribution in other than a specialized format is prohibited.");
+
+               createLabel(printGroup,"ISBN-13", 1);
+               final Text isbn13Text = createText(printGroup, 1, "isbn13");
+
+               createLabel(printGroup, "ISBN-10", 1);
+               final Text isbn10Text = createText(printGroup, 1, "isbn10");
+
+               createLabel(printGroup, "Printing History", 1);
+               final Text printHistoryText = createText(printGroup, 1, 
"printhistory");
+
+               Group transcriberGroup = new Group (titleComposite, SWT.NONE);
+               transcriberGroup.setText("Transcriber");
+               transcriberGroup.setLayout(new GridLayout(2, false));
+
+               createLabel(transcriberGroup, "Transcription Year", 1);
+               final Text transYearText = createText(transcriberGroup, 1, 
"year");
+
+               createLabel(transcriberGroup, "Transcriber", 1);
+               final Text transText = createText(transcriberGroup, 1, 
"transcriber");
+
+               createLabel(transcriberGroup, "Tactile Graphics Specialist", 1);
+               final Text tgsText = createText(transcriberGroup, 1, "tgs");
+
+               createLabel(transcriberGroup, "Affiliation", 1);
+ final Text affiliationText = createText(transcriberGroup, 1, "affiliation");
+
+               Group volumesGroup = new Group (titleComposite, SWT.NONE);
+               volumesGroup.setText("Volumes");
+               volumesGroup.setLayout(new GridLayout(2,false));
+               createLabel(volumesGroup, "Not yet implemented", 1);
+
+               titleTab.setControl(titleComposite);
+               /////////////////////////////
+
+               /////////////////////////////
+               /////Special Symbols Tab/////
+               /////////////////////////////
+               Composite symbolsComposite = new Composite(folder, SWT.NONE);
+               symbolsComposite.setLayout(new RowLayout(SWT.VERTICAL));
+
+               Group symbolsGroup = new Group(symbolsComposite, SWT.NONE);
+               symbolsGroup.setLayout(new GridLayout(1, false));
+
+               createLabel(symbolsGroup, "lolidk", 1);
+
+               symbolsTab.setControl(symbolsComposite);
+               /////////////////////////////
+
+               Button closeButton = new Button(shlTPages, SWT.PUSH);
+ GridData buttonData = new GridData(SWT.RIGHT, SWT.BEGINNING, false, false, 4, 1);
+               buttonData.widthHint = 100;
+               buttonData.heightHint = 30;
+               closeButton.setText("Close");
+               closeButton.setLayoutData(buttonData);
+
+               closeButton.addSelectionListener(new SelectionListener() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               shlTPages.close();
+                       }
+
+                       @Override
+                       public void widgetDefaultSelected(SelectionEvent arg0) {
+
+                       }
+               });
+
+               Button generateButton = new Button(shlTPages, SWT.PUSH);
+               buttonData = new GridData(SWT.LEFT, SWT.BEGINNING, false, 
false, 1, 1);
+               buttonData.widthHint = 100;
+               buttonData.heightHint = 30;
+               generateButton.setText("Generate");
+               generateButton.setLayoutData(buttonData);
+
+               generateButton.addSelectionListener(new SelectionListener() {
+                       @Override
+                       public void widgetSelected(SelectionEvent e) {
+                               xmlmap.put("title", titleText.getText());
+                               xmlmap.put("gradelevel", 
gradeLevelText.getText());
+                               xmlmap.put("subtitle", subtitleText.getText());
+                               xmlmap.put("seriesname", seriesText.getText());
+                               xmlmap.put("editionname", 
editionText.getText());
+                               
authorText.setText(authorText.getText().replaceAll("\r\n", ";"));
+                               xmlmap.put("authors", authorText.getText());
+                               xmlmap.put("translator", 
translatorText.getText());
+                               xmlmap.put("pubpermission", "" + 
permissionCombo.getSelectionIndex());
+                               xmlmap.put("publisher", 
publisherText.getText());
+                               xmlmap.put("location", 
pubLocationText.getText());
+                               xmlmap.put("website", pubWebsiteText.getText());
+ xmlmap.put("copyrighted", String.valueOf(copyrightButton.getSelection())); + xmlmap.put("copyrightsymbol", String.valueOf(copySymbolButton.getSelection()));
+                               xmlmap.put("copyrightdate", 
copyDateText.getText());
+                               xmlmap.put("copyrighttext", copyText.getText());
+                               xmlmap.put("repronotice", reproText.getText());
+                               xmlmap.put("isbn13", isbn13Text.getText());
+                               xmlmap.put("isbn10", isbn10Text.getText());
+                               xmlmap.put("printhistory", 
printHistoryText.getText());
+                               xmlmap.put("year", transYearText.getText());
+                               xmlmap.put("transcriber", transText.getText());
+                               xmlmap.put("tgs", tgsText.getText());
+                               xmlmap.put("affiliation", 
affiliationText.getText());
+                               tpGenerator.saveNewTPage("filename", xmlmap);
+                       }
+
+                       @Override
+                       public void widgetDefaultSelected(SelectionEvent arg0) {
+
+                       }
+               });
+
+               shlTPages.pack(true);
+
+       }
+
+       public GridData newTpData(int columns){
+ return new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false, columns, 1);
+       }
+
+       public Label createLabel(Composite comp, String text, int horizSpan){
+               Label newLabel = new Label(comp, SWT.NONE);
+               newLabel.setText(text);
+               GridData labelData = newTpData(horizSpan);
+               labelData.widthHint = LABEL_WIDTH;
+               newLabel.setLayoutData(labelData);
+               return newLabel;
+       }
+
+       public Text createText(Composite comp, int horizSpan, String xmlmapKey){
+               Text newText = new Text(comp, SWT.SINGLE | SWT.BORDER);
+               GridData newData = newTpData(horizSpan);
+               newData.widthHint = TEXT_BOX_WIDTH;
+               newText.setLayoutData(newData);
+               if(xmlmapKey!=null){
+                       if(xmlmap.get(xmlmapKey)!=null){
+                               newText.setText(xmlmap.get(xmlmapKey));
+                       }
+               }
+               return newText;
+       }
+}
=======================================
--- /dev/null
+++ /src/main/org/brailleblaster/tpages/TPagesGenerator.java Fri Feb 13 15:16:10 2015 UTC
@@ -0,0 +1,197 @@
+package org.brailleblaster.tpages;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.brailleblaster.BBIni;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Node;
+import org.xml.sax.SAXException;
+/*
+ * Handles reading from and writing to XML
+ */
+public class TPagesGenerator {
+       String programDataPath;
+ String[] xmlElements = {"title", "gradelevel", "subtitle", "seriesname", "editionname", "authors", "translator", + "pubpermission", "publisher", "location", "website", "copyrighted", "copyrightsymbol", "copyrightdate", + "copyrighttext", "repronotice", "isbn13", "isbn10", "printhistory", "year", "transcriber", "tgs", "affiliation"};
+       private HashMap<String, String> xmlmap;
+
+       public TPagesGenerator(){
+               programDataPath = BBIni.getProgramDataPath();
+               xmlmap = new HashMap<String, String>();
+       }
+
+       /*
+        * Reload previously made T-Page
+        */
+       public boolean openTPageXML(String filename){
+               try{
+                       File file = new 
File("C:\\Users\\cknapp\\Desktop\\testingjavaxml.xml");
+
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+                       Document doc = docBuilder.parse(file);
+                       doc.getDocumentElement().normalize();
+
+                       //NodeList nodes = doc.getChildNodes();
+                       //System.out.println("nodelist = " + nodes.getLength() + " 
nodes");
+                       for (int i = 0; i < xmlElements.length; i++){
+ xmlmap.put(xmlElements[i], doc.getElementsByTagName(xmlElements[i]).item(0).getTextContent());
+                       }
+
+
+               } catch(ParserConfigurationException e){
+                       e.printStackTrace();
+                       return false;
+               } catch(IOException e){
+                       e.printStackTrace();
+                       return false;
+               }catch (SAXException e){
+                       e.printStackTrace();
+                       return false;
+               }
+
+               return true;
+       }
+
+       public boolean checkForFile(String filename){
+               File file = new 
File("C:\\Users\\cknapp\\Desktop\\testingjavaxml.xml");
+               if(file.exists()){
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+
+       /*
+ * User is using T-Pages for the first time. This will at some point require a String argument for the filename
+        */
+       public boolean createNewTPageXML(){
+               try{
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+                       DocumentBuilder docBuilder = 
docFactory.newDocumentBuilder();
+                       Document doc = docBuilder.newDocument();
+
+                       Element rootElement = doc.createElement("tpage");
+                       doc.appendChild(rootElement);
+
+                       Element titleInfo = doc.createElement("titleinfo");
+                       rootElement.appendChild(titleInfo);
+
+                       titleInfo.appendChild(doc.createElement("title"));
+                       titleInfo.appendChild(doc.createElement("gradelevel"));
+                       titleInfo.appendChild(doc.createElement("subtitle"));
+                       titleInfo.appendChild(doc.createElement("seriesname"));
+                       titleInfo.appendChild(doc.createElement("editionname"));
+
+                       Element authorInfo = doc.createElement("authorinfo");
+                       rootElement.appendChild(authorInfo);
+
+                       authorInfo.appendChild(doc.createElement("authors"));
+                       authorInfo.appendChild(doc.createElement("translator"));
+
+                       Element publisherInfo = 
doc.createElement("publisherinfo");
+                       rootElement.appendChild(publisherInfo);
+
+                       
publisherInfo.appendChild(doc.createElement("pubpermission"));
+                       
publisherInfo.appendChild(doc.createElement("publisher"));
+                       
publisherInfo.appendChild(doc.createElement("location"));
+                       publisherInfo.appendChild(doc.createElement("website"));
+
+                       Element printInfo = doc.createElement("printinfo");
+                       rootElement.appendChild(printInfo);
+
+                       printInfo.appendChild(doc.createElement("copyrighted"));
+                       
printInfo.appendChild(doc.createElement("copyrightsymbol"));
+                       
printInfo.appendChild(doc.createElement("copyrightdate"));
+                       
printInfo.appendChild(doc.createElement("copyrighttext"));
+                       printInfo.appendChild(doc.createElement("repronotice"));
+                       printInfo.appendChild(doc.createElement("isbn13"));
+                       printInfo.appendChild(doc.createElement("isbn10"));
+                       
printInfo.appendChild(doc.createElement("printhistory"));
+
+                       Element transcriptionInfo = 
doc.createElement("transcriptioninfo");
+                       rootElement.appendChild(transcriptionInfo);
+
+                       
transcriptionInfo.appendChild(doc.createElement("year"));
+                       
transcriptionInfo.appendChild(doc.createElement("transcriber"));
+                       transcriptionInfo.appendChild(doc.createElement("tgs"));
+                       
transcriptionInfo.appendChild(doc.createElement("affiliation"));
+
+                       TransformerFactory tFactory = 
TransformerFactory.newInstance();
+                       Transformer transformer = tFactory.newTransformer();
+                       DOMSource source = new DOMSource(doc);
+                       //StreamResult result = new StreamResult(System.out);
+ StreamResult result = new StreamResult(new File("C:\\Users\\cknapp\\Desktop\\testingjavaxml.xml"));
+                       transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount";, "2");
+                       transformer.transform(source, result);
+
+               } catch(ParserConfigurationException e){
+                       e.printStackTrace();
+                       return false;
+               } catch(TransformerException e){
+                       e.printStackTrace();
+                       return false;
+               }
+               return true;
+       }
+
+ public boolean saveNewTPage(String filename, HashMap<String, String> newXmlMap){
+               File file = new 
File("C:\\Users\\cknapp\\Desktop\\testingjavaxml.xml");
+               Set mapSet = newXmlMap.entrySet();
+               Iterator iterator = mapSet.iterator();
+               try{
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+                       Document doc = docBuilder.parse(file);
+
+                       while(iterator.hasNext()){
+                               Map.Entry mapEntry = (Map.Entry)iterator.next();
+ doc.getElementsByTagName((String)mapEntry.getKey()).item(0).setTextContent((String)mapEntry.getValue());
+                       }
+
+ TransformerFactory transformerFactory = TransformerFactory.newInstance();
+                       Transformer transformer = 
transformerFactory.newTransformer();
+                       DOMSource source = new DOMSource(doc);
+ StreamResult result = new StreamResult(new File("C:\\Users\\cknapp\\Desktop\\testingjavaxml.xml"));
+                       transformer.transform(source, result);
+
+               } catch(ParserConfigurationException e){
+                       e.printStackTrace();
+                       return false;
+               } catch(IOException e){
+                       e.printStackTrace();
+                       return false;
+               }catch (SAXException e){
+                       e.printStackTrace();
+                       return false;
+               }catch(TransformerException e){
+                       e.printStackTrace();
+                       return false;
+               }
+
+
+               return true;
+       }
+
+       public HashMap<String, String> getXmlMap(){
+               return xmlmap;
+       }
+}

Other related posts:

  • » [brailleblaster] push by cknapp.c...@xxxxxxxxx - Adding classes on 2015-02-13 15:16 GMT - brailleblaster