It allows users to set the page margins by cells and lines in addition to the regional units. It isn't ready for testing. -----Original Message----- From: brailleblaster-bounce@xxxxxxxxxxxxx [mailto:brailleblaster-bounce@xxxxxxxxxxxxx] On Behalf Of Vic Beckley Sent: Wednesday, December 17, 2014 2:04 PM To: brailleblaster@xxxxxxxxxxxxx Subject: [brailleblaster] Re: push by rebecca....@xxxxxxxxx - cells/lines updates on 2014-12-17 18:55 GMT What is the purpose of this branch please? -----Original Message----- From: brailleblaster-bounce@xxxxxxxxxxxxx [mailto:brailleblaster-bounce@xxxxxxxxxxxxx] On Behalf Of brailleblaster@xxxxxxxxxxxxxx Sent: Wednesday, December 17, 2014 1:55 PM To: brailleblaster@xxxxxxxxxxxxx Subject: [brailleblaster] push by rebecca....@xxxxxxxxx - cells/lines updates on 2014-12-17 18:55 GMT Revision: 5f4d82596858 Branch: rt1738 Author: Rebecca Luttmer <rebecca.luttmer@xxxxxxxxx> Date: Wed Dec 17 18:54:30 2014 UTC Log: cells/lines updates https://code.google.com/p/brailleblaster/source/detail?r=5f4d82596858 Modified: /src/main/org/brailleblaster/settings/SettingsManager.java /src/main/org/brailleblaster/settings/ui/PagePropertiesTab.java /src/main/org/brailleblaster/util/PropertyFileManager.java ======================================= --- /src/main/org/brailleblaster/settings/SettingsManager.java Tue Dec 16 20:10:14 2014 UTC +++ /src/main/org/brailleblaster/settings/SettingsManager.java Wed Dec 17 18:54:30 2014 UTC @@ -153,6 +153,8 @@ outputMap.put(tokens[0], tokens[1]); else if(tokens[0].equals("minCellsPerLine")) outputMap.put(tokens[0], tokens[1]); + else if (tokens[0].equals("unitsMeasurement")) + outputMap.put(tokens[0],tokens[1]); } //do not include compress.cti because removing spaces should be left up to the user to remove @@ -278,7 +280,7 @@ public int calculateCellsPerLine(double pWidth){ double cellWidth; - if(isMetric()) + if(!isMetric()) cellWidth = 0.246063; else cellWidth = 6.25; @@ -298,7 +300,7 @@ */ public double calcWidthFromCells(int numberOfCells){ double cellWidth; - if (isMetric()) + if (!isMetric()) cellWidth=0.246063; else cellWidth=6.25; @@ -311,7 +313,7 @@ //returns a double page height public double calcHeightFromLines(int numberOfLines){ Double cellHeight; - if (isMetric()) + if (!isMetric()) cellHeight = 0.393701; else cellHeight = 10.0; ======================================= --- /src/main/org/brailleblaster/settings/ui/PagePropertiesTab.java Tue Dec 16 21:32:04 2014 UTC +++ /src/main/org/brailleblaster/settings/ui/PagePropertiesTab.java Wed Dec 17 18:54:30 2014 UTC @@ -2,12 +2,10 @@ import java.util.HashMap; - - +import org.brailleblaster.BBIni; import org.brailleblaster.localization.LocaleHandler; import org.brailleblaster.settings.SettingsManager; import org.brailleblaster.util.Notify; -import org.brailleblaster.wordprocessor.WPManager; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; @@ -34,9 +32,7 @@ import org.eclipse.swt.widgets.TabFolder; import org.eclipse.swt.widgets.TabItem; import org.eclipse.swt.widgets.Text; -import org.eclipse.swt.widgets.Display; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.eclipse.swt.widgets.Display;//rl import org.brailleblaster.util.PropertyFileManager; public class PagePropertiesTab { @@ -44,24 +40,21 @@ SettingsManager sm; TabItem item; Composite group; - - private static Logger logger = LoggerFactory.getLogger(PagePropertiesTab.class); + private static final String USER_SETTINGS = BBIni.getUserProgramDataPath() + BBIni.getFileSep() + "liblouisutdml" + BBIni.getFileSep() + "lbu_files" + BBIni.getFileSep() + "utdmlSettings.properties"; - Group sizeGroup, marginGroup, pageGroup, buttonGroup, unitsGroup; + Group sizeGroup, marginGroup, pageGroup, buttonGroup, unitsGroup;// Label pageSizeLabel, widthLabel, heightLabel, linesPerPageLabel, cellsPerLineLabel, marginTopLabel, marginBottomLabel, marginLeftLabel, marginRightLabel; Combo pageTypes; Text widthBox, heightBox, linesBox, cellsBox, marginTopBox, marginLeftBox, marginRightBox, marginBottomBox; - Button okButton, cancelButton, regionalButton, cellsLinesButton; + Button okButton, cancelButton, regionalButton, cellsLinesButton;// boolean listenerLocked; LocaleHandler lh; - public static int units = 0; - public static Boolean defaultUnits = true; + public static String units;// + public static Boolean defaultUnits;// PagePropertiesTab(TabFolder folder, final SettingsManager sm, HashMap<String, String>settingsMap){ - -// PropertyFileManager pfm = new PropertyFileManager(); lh = new LocaleHandler(); this.sm = sm; this.settingsMap = settingsMap; @@ -74,6 +67,7 @@ item.setControl(group); setFormLayout(group, 0, 100, 0, 60); + //rl unitsGroup = new Group(group, SWT.BORDER); unitsGroup.setText(lh.localValue("measurementUnits")); unitsGroup.setLayout(new FillLayout()); @@ -84,7 +78,15 @@ regionalButton.setSelection(true); // default cellsLinesButton = new Button(unitsGroup, SWT.RADIO); - cellsLinesButton.setText(lh.localValue("cellsLines")); + cellsLinesButton.setText(lh.localValue("cellsLines")); + + String unitsMeasurement = settingsMap.get("unitsMeasurement"); + if (unitsMeasurement =="regional") + regionalButton.setSelection(true); + else + cellsLinesButton.setSelection(true); + + //rl sizeGroup = new Group(group, SWT.BORDER); sizeGroup.setText(lh.localValue("pageSize")); @@ -122,7 +124,7 @@ linesBox = new Text(pageGroup, SWT.BORDER); setGridData(linesBox); - linesBox.setText((String.valueOf(sm.calculateLinesPerPage(Double.valueOf(settingsMap.get("paperHeight")))))); + linesBox.setText((String.valueOf(calculateLinesPerPage(Double.valueOf(settingsMap.get("paperHeight")))))); linesBox.setEditable(false); cellsPerLineLabel = new Label(pageGroup, 0); @@ -130,7 +132,7 @@ cellsBox = new Text(pageGroup, SWT.BORDER); setGridData(cellsBox); - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(Double.valueOf(settingsMap.get("paperWidth"))))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(Double.valueOf(settingsMap.get("paperWidth"))))); cellsBox.setEditable(false); marginGroup = new Group(group, SWT.BORDER); @@ -170,14 +172,13 @@ setValue(marginRightBox, "rightMargin"); addMarginListener(marginRightBox, "rightMargin"); - Control [] tabList = {sizeGroup, marginGroup, unitsGroup}; + Control [] tabList = {sizeGroup, marginGroup}; group.setTabList(tabList); if(widthBox.getText().length() > 0 || heightBox.getText().length() > 0) checkStandardSizes(); addListeners(); - } private void addDoubleListener(final Text t){ @@ -191,7 +192,6 @@ } }); } - private void addMarginListener(final Text t, final String type){ if(type.equals("leftMargin") || type.equals("rightMargin")){ @@ -199,21 +199,19 @@ @Override public void modifyText(ModifyEvent e) { Double margin = getDoubleValue(t); - + if(margin >= getDoubleValue(widthBox) || (getDoubleValue(marginLeftBox) + getDoubleValue(marginRightBox) >= getDoubleValue(widthBox))){ new Notify(lh.localValue("incorrectMarginWidth")); t.setText(settingsMap.get(type)); } else { settingsMap.put(type, getStringValue(t)); - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(Double.valueOf(widthBox.getText())))); - linesBox.setText(String.valueOf(sm.calculateLinesPerPage(Double.valueOf(heightBox.getText())))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(Double.valueOf(widthBox.getText())))); + linesBox.setText(String.valueOf(calculateLinesPerPage(Double.valueOf(heightBox.getText())))); } - } + } }); } - - else { t.addModifyListener(new ModifyListener(){ @Override @@ -226,14 +224,13 @@ } else { settingsMap.put(type, getStringValue(t)); - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(Double.valueOf(widthBox.getText())))); - linesBox.setText(String.valueOf(sm.calculateLinesPerPage(Double.valueOf(heightBox.getText())))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(Double.valueOf(widthBox.getText())))); + linesBox.setText(String.valueOf(calculateLinesPerPage(Double.valueOf(heightBox.getText())))); } } }); } } - private void setStandardPages(){ Page [] temp = sm.getStandardSizes(); @@ -262,28 +259,24 @@ c.setLayoutData(gridData); } - + //rl This method adds listeners for the radio buttons that let the +user choose between regional and cells/lines private void addListeners(){ - //adds listeners for the radio buttons that check regional or cells/lines regionalButton.addSelectionListener(new SelectionAdapter(){ public void widgetSelected(SelectionEvent e){ regionalButton.setSelection(true); - defaultUnits=true; - modifyMargins(defaultUnits); - + defaultUnits=true; + modifyMargins(defaultUnits); } }); - cellsLinesButton.addSelectionListener(new SelectionAdapter(){ public void widgetSelected(SelectionEvent e){ - cellsLinesButton.setSelection(true); - defaultUnits=false; - modifyMargins(defaultUnits); + cellsLinesButton.setSelection(true); + defaultUnits=false; + modifyMargins(defaultUnits); } }); - - // + //rl widthBox.addTraverseListener(new TraverseListener(){ @Override @@ -346,7 +339,6 @@ } } }); - pageTypes.addSelectionListener(new SelectionAdapter(){ @Override @@ -355,14 +347,14 @@ if(sm.isMetric()){ widthBox.setText(String.valueOf(p.mmWidth)); heightBox.setText(String.valueOf(p.mmHeight)); - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(p.mmWidth))); - linesBox.setText(String.valueOf(sm.calculateLinesPerPage(p.mmHeight ))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(p.mmWidth))); + linesBox.setText(String.valueOf(calculateLinesPerPage(p.mmHeight +))); } else { widthBox.setText(String.valueOf(p.width)); heightBox.setText(String.valueOf(p.height)); - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(p.width))); - linesBox.setText(String.valueOf(sm.calculateLinesPerPage(p.height))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(p.width))); + linesBox.setText(String.valueOf(calculateLinesPerPage(p.height))); } if(pageTypes.getItem(pageTypes.getItemCount() - 1).equals(lh.localValue("custom"))) @@ -378,8 +370,8 @@ if(loc != -1){ e.doit = false; pageTypes.select(loc); - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(Double.valueOf(sm.getStandardSizes()[loc].width)))); - linesBox.setText(String.valueOf(sm.calculateLinesPerPage(Double.valueOf(sm.getStandardSizes()[loc].height)))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(Double.valueOf(sm.getStandardSizes()[loc].width)))); + linesBox.setText(String.valueOf(calculateLinesPerPage(Double.valueOf(sm.getStandardSizes()[loc].height)))); } else e.doit = false; @@ -387,59 +379,6 @@ } }); } - - //This will modify the margins value and the margins text box. It will receive a boolean default units from the listeners - //to the radio buttons - public void modifyMargins(Boolean defaultUnits){ - if (defaultUnits){ - - regionalButton.setSelection(true); - cellsLinesButton.setSelection(false); - - String leftMargin = settingsMap.get("leftMargin"); - marginLeftBox.setText(leftMargin); - - String rightMargin = settingsMap.get("rightMargin"); - marginRightBox.setText(rightMargin); - - String topMargin = settingsMap.get("topMargin"); - marginTopBox.setText(topMargin); - - String bottomMargin = settingsMap.get("bottomMargin"); - marginBottomBox.setText(bottomMargin); - - } - - else{ - - cellsLinesButton.setSelection(true); - regionalButton.setSelection(false); - - String leftMargin = settingsMap.get("leftMargin"); - String convertedLeftMargin = String.valueOf(sm.calculateCellsPerLine(Double.valueOf(leftMargin))); - marginLeftBox.setText(convertedLeftMargin); - - String rightMargin = settingsMap.get("rightMargin"); - String convertedRightMargin =String.valueOf(sm.calculateCellsPerLine(Double.valueOf(rightMargin))); - marginRightBox.setText(convertedRightMargin); - - String topMargin = settingsMap.get("topMargin"); - String convertedTopMargin = String.valueOf(sm.calculateLinesPerPage(Double.valueOf(topMargin))); - marginTopBox.setText(convertedTopMargin); - - String bottomMargin = settingsMap.get("bottomMargin"); - String convertedBottomMargin = String.valueOf(sm.calculateLinesPerPage(Double.valueOf(bottomMargin))); - marginBottomBox.setText(convertedBottomMargin); - String bottomBox = marginBottomBox.getText(); - String conversionBottomBox = String.valueOf(sm.calcHeightFromLines(Integer.valueOf(bottomBox))); - marginBottomBox.setText(conversionBottomBox); - - logger.debug(bottomMargin); - - } - - } - private void checkStandardSizes(){ Double width = getDoubleValue(widthBox); Double height = getDoubleValue(heightBox); @@ -452,12 +391,12 @@ found = true; if(!sm.isMetric()){ - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(sm.getStandardSizes()[i].width))); - linesBox.setText(String.valueOf(sm.calculateLinesPerPage(sm.getStandardSizes()[i].height))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(sm.getStandardSizes()[i].width))); + linesBox.setText(String.valueOf(calculateLinesPerPage(sm.getStandardSizes()[i].height))); } else { - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(sm.getStandardSizes()[i].mmWidth))); - linesBox.setText(String.valueOf(sm.calculateLinesPerPage(sm.getStandardSizes()[i].mmHeight))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(sm.getStandardSizes()[i].mmWidth))); + linesBox.setText(String.valueOf(calculateLinesPerPage(sm.getStandardSizes()[i].mmHeight))); } if(pageTypes.getItem(pageTypes.getItemCount() - 1).equals(lh.localValue("custom"))) @@ -473,8 +412,8 @@ else pageTypes.select(pageTypes.getItemCount() - 1); - cellsBox.setText(String.valueOf(sm.calculateCellsPerLine(Double.valueOf(widthBox.getText())))); - linesBox.setText(String.valueOf(sm.calculateLinesPerPage(Double.valueOf(heightBox.getText())))); + cellsBox.setText(String.valueOf(calculateCellsPerLine(Double.valueOf(widthBox.getText())))); + linesBox.setText(String.valueOf(calculateLinesPerPage(Double.valueOf(heightBox.getText())))); } } } @@ -524,7 +463,128 @@ else return t.getText(); } + //This will modify the margins value and the margins text box. It will receive a boolean default units from the listeners + //to the radio buttons + public void modifyMargins(Boolean defaultUnits){ + if (defaultUnits){ + + units = "regional"; + + regionalButton.setSelection(true); + cellsLinesButton.setSelection(false); + + String leftMargin = settingsMap.get("leftMargin"); + marginLeftBox.setText(leftMargin); + + String rightMargin = settingsMap.get("rightMargin"); + marginRightBox.setText(rightMargin); + String topMargin = settingsMap.get("topMargin"); + marginTopBox.setText(topMargin); + + String bottomMargin = settingsMap.get("bottomMargin"); + marginBottomBox.setText(bottomMargin); + + PropertyFileManager pfm = new PropertyFileManager(USER_SETTINGS); + pfm.save("unitsGroup",units); + + + } + + else{ + + units = "cellsLines"; + + cellsLinesButton.setSelection(true); + regionalButton.setSelection(false); + + String leftMargin = settingsMap.get("leftMargin"); + String convertedLeftMargin = String.valueOf(calculateCellsPerInch(Double.valueOf(leftMargin))); + marginLeftBox.setText(convertedLeftMargin); + + String rightMargin = settingsMap.get("rightMargin"); + String convertedRightMargin =String.valueOf(calculateCellsPerInch(Double.valueOf(rightMargin))); + marginRightBox.setText(convertedRightMargin); + + String topMargin = settingsMap.get("topMargin"); + String convertedTopMargin = String.valueOf(calculateLinesPerInch(Double.valueOf(topMargin))); + marginTopBox.setText(convertedTopMargin); + + String bottomMargin = settingsMap.get("bottomMargin"); + String convertedBottomMargin = String.valueOf(calculateLinesPerInch(Double.valueOf(bottomMargin))); + marginBottomBox.setText(convertedBottomMargin); + + PropertyFileManager pfm = new PropertyFileManager(USER_SETTINGS); + pfm.save("unitsGroup",units); + + } + + } + + private int calculateCellsPerLine(double pWidth){ + double cellWidth; + if(!sm.isMetric()) + cellWidth = 0.246063; + else + cellWidth = 6.25; + + if(settingsMap.containsKey("leftMargin")) + pWidth -= Double.valueOf(settingsMap.get("leftMargin")); + + if(settingsMap.containsKey("rightMargin")) + pWidth -= Double.valueOf(settingsMap.get("rightMargin")); + + return (int)(pWidth / cellWidth); + } + + private int calculateLinesPerInch(double inches){ + double cellHeight; + if(!sm.isMetric()) + cellHeight = 0.393701; + else + cellHeight = 10; + return (int)(inches/cellHeight); + } + + private int calculateLinesPerPage(double pHeight){ + double cellHeight; + if(!sm.isMetric()) + cellHeight = 0.393701; + else + cellHeight = 10; + + if(settingsMap.containsKey("topMargin")) + pHeight -= Double.valueOf(settingsMap.get("topMargin")); + + if(settingsMap.containsKey("bottomMargin")) + pHeight -= Double.valueOf(settingsMap.get("bottomMargin")); + + return (int)(pHeight / cellHeight); + } + public int calculateCellsPerInch(double inches){ + double cellWidth; + if(!sm.isMetric()) + cellWidth = 0.246063; + else + cellWidth = 6.25; + + return (int)(inches/cellWidth); + } + + /* rl + * This method calculates the width of the page from the number of cells. + * It receives the number of cells and returns a double of the page width. + */ + private double calcWidthFromCells(int numberOfCells){ + double cellWidth; + if (!sm.isMetric()) + cellWidth=0.246063; + else + cellWidth=6.25; + + return cellWidth*numberOfCells; + + } private boolean checkEqualWidth(Page p, double width){ if(sm.isMetric()) ======================================= --- /src/main/org/brailleblaster/util/PropertyFileManager.java Mon May 19 17:32:53 2014 UTC +++ /src/main/org/brailleblaster/util/PropertyFileManager.java Wed Dec 17 18:54:30 2014 UTC @@ -1,4 +1,4 @@ -/* BrailleBlaster Braille Transcription Application + /* BrailleBlaster Braille Transcription Application * * Copyright (C) 2014 * American Printing House for the Blind, Inc. www.aph.org