The following commit has been merged in the patch/applet_export branch: commit c75c1ef84ae19976ffebae4a94e99059c712d8ed Merge: b7791915d46a21811b688ab2b2d50670f2cda0b7 cb0585b952c976be56d9811276f8222975abd743 Author: Giovanni Mascellani <mascell...@poisson.phc.unipi.it> Date: Sat May 12 00:30:59 2012 +0200
Merge commit 'refs/top-bases/patch/applet_export' into patch/applet_export diff --combined geogebra/export/WorksheetExportDialog.java index 37d3c5f,9648a8b..712e304 --- a/geogebra/export/WorksheetExportDialog.java +++ b/geogebra/export/WorksheetExportDialog.java @@@ -25,6 -25,7 +25,7 @@@ import geogebra.kernel.GeoElement import geogebra.kernel.Kernel; import geogebra.main.Application; import geogebra.main.GeoGebraPreferences; + import geogebra.util.Base64; import geogebra.util.DownloadManager; import geogebra.util.Util; @@@ -83,8 -84,6 +84,6 @@@ public class WorksheetExportDialog exte */ private static final int TAB_HTML = 1; - private static final int BUTTON_WIDTH = 200; - private static final int BUTTON_HEIGHT = 40; private static final int DEFAULT_HTML_PAGE_WIDTH = 600; public static final int DEFAULT_APPLET_WIDTH = 600; public static final int DEFAULT_APPLET_HEIGHT = 500; @@@ -98,6 -97,7 +97,7 @@@ final private static int TYPE_MEDIAWIKI = 2; final private static int TYPE_GOOGLEGADGET = 3; final private static int TYPE_MOODLE = 4; + final private static int TYPE_GEOGEBRAWEB = 5; // final private static int TYPE_JSXGRAPH = 4; // final private static int TYPE_JAVASCRIPT = 5; @@@ -110,7 -110,7 +110,7 @@@ cbAllowRescaling, cbRemoveLinebreaks, cbOfflineJars, cbIncludeHTML5; private JComboBox cbFileType, cbAllWorksheets; - private JButton exportButton, uploadButton, helpButton; + private JButton exportButton, helpButton; private GraphicSizePanel sizePanel; private boolean kernelChanged = false; private JTabbedPane tabbedPane; @@@ -141,7 -141,7 +141,7 @@@ * upper left corner of the euclidian view. */ private void checkEuclidianView() { - EuclidianView ev = app.getEuclidianView(); + EuclidianView ev = (EuclidianView) app.getActiveEuclidianView(); // 1) selection rectangle Rectangle rect = ev.getSelectionRectangle(); @@@ -332,7 -332,7 +332,7 @@@ Util.registerForDisposeOnEscape(this); setTitle(app.getPlain("DynamicWorksheetExport")); - setResizable(false); + setResizable(true); centerOnScreen(); } @@@ -348,13 -348,6 +348,6 @@@ cbShowResetIcon.setSelected(Boolean.valueOf( ggbPref.loadPreference(GeoGebraPreferences.EXPORT_WS_RESET_ICON, "false")).booleanValue()); - //cbShowFrame.setSelected(Boolean.valueOf( - // ggbPref.loadPreference(GeoGebraPreferences.EXPORT_WS_FRAME_POSSIBLE, - // "false")).booleanValue()); - //cbOpenButton.setSelected(Boolean.valueOf( - // ggbPref.loadPreference(GeoGebraPreferences.EXPORT_WS_BUTTON_TO_OPEN, - // "false")).booleanValue()); - cbShowMenuBar.setSelected(Boolean.valueOf( ggbPref.loadPreference(GeoGebraPreferences.EXPORT_WS_SHOW_MENUBAR, "false")).booleanValue()); @@@ -426,8 -419,6 +419,6 @@@ Boolean.toString(cbEnableLabelDrags.isSelected())); ggbPref.savePreference(GeoGebraPreferences.EXPORT_WS_RESET_ICON, Boolean.toString(cbShowResetIcon.isSelected())); - //ggbPref.savePreference(GeoGebraPreferences.EXPORT_WS_FRAME_POSSIBLE, - // Boolean.toString(cbShowFrame.isSelected())); ggbPref.savePreference(GeoGebraPreferences.EXPORT_WS_SHOW_MENUBAR, Boolean.toString(cbShowMenuBar.isSelected())); ggbPref.savePreference(GeoGebraPreferences.EXPORT_WS_SHOW_TOOLBAR, @@@ -449,8 -440,6 +440,6 @@@ Boolean.toString(cbAllowRescaling.isSelected())); ggbPref.savePreference(GeoGebraPreferences.EXPORT_WS_REMOVE_LINEBREAKS, Boolean.toString(cbRemoveLinebreaks.isSelected())); - //ggbPref.savePreference(GeoGebraPreferences.EXPORT_WS_BUTTON_TO_OPEN, - // Boolean.toString(cbOpenButton.isSelected())); ggbPref.savePreference(GeoGebraPreferences.EXPORT_WS_OFFLINE_ARCHIVE, Boolean.toString(cbOfflineJars.isSelected())); } @@@ -576,14 -565,6 +565,6 @@@ cbShowResetIcon = new JCheckBox(app.getMenu("ShowResetIcon")); funcPanel.add(cbShowResetIcon); - // framPossible - //cbShowFrame = new JCheckBox(app.getPlain("DoubleClickToOpen")); - //funcPanel.add(cbShowFrame); - - // button to open applet - //cbOpenButton = new JCheckBox(app.getPlain("OpenButton")); - //funcPanel.add(cbOpenButton); - funcPanel.add(Box.createVerticalGlue()); cbUseBrowserForJavaScript = new JCheckBox(app.getMenu("UseBrowserForJS")); @@@ -669,11 -650,11 +650,11 @@@ // left column // include HTML5 - cbIncludeHTML5 = new JCheckBox(app.getMenu("IncludeHTML5")); + cbIncludeHTML5 = new JCheckBox(app.getMenu("HTML5Only")); if (GeoGebra.IS_PRE_RELEASE) filePanelWest.add(cbIncludeHTML5); // download jar files - cbOfflineJars = new JCheckBox(app.getPlain("IncludeJARFiles")); + cbOfflineJars = new JCheckBox(app.getPlain("AllowOfflineUse")); filePanelWest.add(cbOfflineJars); // remove line breaks @@@ -814,15 -795,10 +795,10 @@@ case TYPE_MOODLE: int appletWidth, appletHeight; - //if (cbOpenButton.isSelected()) { // change width and height for open - // // button - // appletWidth = BUTTON_WIDTH; - // appletHeight = BUTTON_HEIGHT; - //} else - { - appletWidth = sizePanel.getSelectedWidth(); - appletHeight = sizePanel.getSelectedHeight(); - } + + appletWidth = sizePanel.getSelectedWidth(); + appletHeight = sizePanel.getSelectedHeight(); + stringSelection = new StringSelection(getAppletTag(app, null, appletWidth, appletHeight, false, removeLineBreaks, @@@ -890,7 -866,7 +866,7 @@@ } // open html file in browser - guiManager.showURLinBrowser(HTMLfile.toURL()); + guiManager.showURLinBrowser(HTMLfile.toURI().toURL()); } catch (Exception ex) { app.showError("SaveFileFailed"); Application.debug(ex.toString()); @@@ -1020,7 -996,7 +996,7 @@@ try { // open html file in browser - guiManager.showURLinBrowser(HTMLfile.toURL()); + guiManager.showURLinBrowser(HTMLfile.toURI().toURL()); } catch (Exception ex) { app.showError("SaveFileFailed"); Application.debug(ex.toString()); @@@ -1095,7 -1071,7 +1071,7 @@@ try { // open html file in browser - guiManager.showURLinBrowser(HTMLfile.toURL()); + guiManager.showURLinBrowser(HTMLfile.toURI().toURL()); } catch (Exception ex) { app.showError("SaveFileFailed"); Application.debug(ex.toString()); @@@ -1110,15 -1086,10 +1086,15 @@@ * unsigned applet is needed for the options set. */ private URL getAppletCodebase() { - URL codebase = Application.getCodeBase(); + URL codebase = null; + try { + codebase = new URL("http://www.geogebra.org/webstart/"); + } catch (Exception e) { + e.printStackTrace(); + } if (!cbSavePrint.isSelected()) { try { - codebase = new URL(Application.getCodeBase(), "unsigned/"); + codebase = new URL(codebase, "unsigned/"); } catch (Exception e) { e.printStackTrace(); } @@@ -1199,7 -1170,7 +1175,7 @@@ ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { app.getXMLio().writeGeoGebraFile(baos, false); - sb.append(geogebra.util.Base64.encode(baos.toByteArray(), 0)); + sb.append(Base64.encode(baos.toByteArray(), 0)); } catch (IOException e) { e.printStackTrace(); return false; @@@ -1259,7 -1230,7 +1235,7 @@@ * appendWithLineBreak(sb, "<html xmlns=\"http://www.w3.org/1999/xhtml\">"); * appendWithLineBreak(sb, "<head>"); appendWithLineBreak(sb, "<title>"); * Construction cons = kernel.getConstruction(); String title = - * cons.getTitle(); sb.append(Util.toHTMLString(title)); + * cons.getTitle(); sb.append(StringUtil.toHTMLString(title)); * appendWithLineBreak(sb, "</title>"); appendWithLineBreak(sb, "<body>"); * * appendWithLineBreak(sb, "<script type=\"text/javascript\">"); @@@ -1292,7 -1263,7 +1268,7 @@@ * appendWithLineBreak(sb, "<html xmlns=\"http://www.w3.org/1999/xhtml\">"); * appendWithLineBreak(sb, "<head>"); appendWithLineBreak(sb, "<title>"); * Construction cons = kernel.getConstruction(); String title = - * cons.getTitle(); sb.append(Util.toHTMLString(title)); + * cons.getTitle(); sb.append(StringUtil.toHTMLString(title)); * appendWithLineBreak(sb, "</title>"); * * appendWithLineBreak(sb, " <style type=\"text/css\">"); @@@ -1395,14 -1366,8 +1371,8 @@@ // applet width int appletWidth, appletHeight; - //if (cbOpenButton.isSelected()) { // change width and height for open button - // appletWidth = BUTTON_WIDTH; - // appletHeight = BUTTON_HEIGHT; - //} else - { - appletWidth = sizePanel.getSelectedWidth(); - appletHeight = sizePanel.getSelectedHeight(); - } + appletWidth = sizePanel.getSelectedWidth(); + appletHeight = sizePanel.getSelectedHeight(); // width for table int pageWidth = Math.max(appletWidth, DEFAULT_HTML_PAGE_WIDTH); @@@ -1542,7 -1507,7 +1512,7 @@@ // for each GeoElement with a JavaScript, create a function call // with the same name as the geo's label (prefixed by ggb) sb.append("function ggb"); - sb.append(geo.getLabel()); + sb.append(geo.getLabelSimple()); appendWithLineBreak(sb, "() {"); appendWithLineBreak(sb, "var ggbApplet = document.ggbApplet;"); appendWithLineBreak(sb, script); @@@ -1593,23 -1558,17 +1563,17 @@@ StringBuilder sb = new StringBuilder(); - // JavaScript version for non-Java devices eg Android, iPhone + // GeoGebraWeb (JavaScript/HTML5) for non-Java devices eg Android, iPhone if (includeHTML5) { - - appendWithLineBreak( - sb, - "<script type=\"text/javascript\" language=\"javascript\" src=\"http://www.geogebra.org/mobile/4.0/geogebramobile/geogebramobile.nocache.js\"></script>"); - sb.append("<article class=\"geogebramobile\" style=\"width: "); - sb.append(width); - sb.append("px; height: "); - sb.append(height); - appendWithLineBreak(sb, "px; border: 1px solid black;\""); - sb.append("data-param-ggbbase64=\""); - appendBase64(app, sb); - sb.append("\""); - appendWithLineBreak(sb, "></article>"); - appendWithLineBreak(sb, "<noscript id=\"ggbappletwrapper\">"); - } + appendWithLineBreak(sb, "<script type=\"text/javascript\" language=\"javascript\" src=\""); + sb.append(GeoGebra.GEOGEBRA_HTML5_BASE); + sb.append("\"></script>"); + appendWithLineBreak(sb, "<article class=\"geogebraweb\" data-param-width=\""+width+"\" data-param-height=\""+height+"\" "); + appendGgbAppletParameters(sb, TYPE_GEOGEBRAWEB); + sb.append("data-param-ggbbase64=\""); + appendBase64(app, sb); + appendWithLineBreak(sb, "\"></article>"); + } else { // include applet sb.append("<applet name=\"ggbApplet\" code=\"geogebra.GeoGebraApplet\""); @@@ -1663,99 -1622,114 +1627,114 @@@ "\t<param name=\"centerimage\" value=\"true\" />"); } - //if (!cbOpenButton.isSelected()) { - appendAllAppletParameters(sb, TYPE_HTMLFILE); - //} else {// button type - // appendWithLineBreak(sb, "\t<param name=\"type\" value=\"button\" />"); - // // white background - // appendWithLineBreak(sb, "\t<param name=\"bgcolor\" value=\"#FFFFFF\" />"); - //} + appendAllAppletParameters(sb, TYPE_HTMLFILE); // problem with Moodle 1.9.5 mangling this if (includeNoJavaMessage) appendWithLineBreak(sb, app.getPlain("NoJavaMessage")); sb.append("</applet>"); - if (includeHTML5) { - appendWithLineBreak(sb, "</noscript>"); + } + return sb.toString(); } - private void appletParam(StringBuilder sb, String param, boolean value, + private void appletParam(StringBuilder sb, String[] param, boolean value, int type) { appletParam(sb, param, value + "", type); } - private void appletParam(StringBuilder sb, String param, String value, + private void appletParam(StringBuilder sb, String[] param, String value, int type) { switch (type) { case TYPE_MEDIAWIKI: sb.append(' '); - sb.append(param); + sb.append(param[0]); sb.append(" = \""); sb.append(value); sb.append('\"'); break; case TYPE_GOOGLEGADGET: - sb.append(param); + sb.append(param[0]); sb.append(":\""); sb.append(value); sb.append("\", "); break; + case TYPE_GEOGEBRAWEB: + if (param[1] != null) { + sb.append(param[1]); + sb.append("=\""); + sb.append(value); + sb.append("\" "); + } + + break; + default: // HTML file/clipboard sb.append("\t<param name=\""); - sb.append(param); + sb.append(param[0]); sb.append("\" value=\""); sb.append(value); appendWithLineBreak(sb, "\" />"); } } + + final static String[] enableLabelDrags = {"enableLabelDrags", "data-param-enableLabelDrags"}; + final static String[] showResetIcon = {"showResetIcon", "data-param-showResetIcon"}; + final static String[] enableRightClick = {"enableRightClick", null}; + final static String[] errorDialogsActive = {"errorDialogsActive", null}; + final static String[] showMenuBar = {"showMenuBar", "data-param-showMenuBar"}; + final static String[] showToolBar = {"showToolBar", "data-param-showToolBar"}; + final static String[] showToolBarHelp = {"showToolBarHelp", null}; + final static String[] showAlgebraInput = {"showAlgebraInput", "data-param-showAlgebraInput"}; + final static String[] useBrowserForJS = {"useBrowserForJS", "enableLabelDrags"}; + final static String[] allowRescaling = {"allowRescaling", null}; + final static String[] java_arguments = {"java_arguments", null}; + final static String[] cache_archive = {"cache_archive", null}; + final static String[] cache_version = {"cache_version", null}; private void appendGgbAppletParameters(StringBuilder sb, int type) { - // framePossible (double click opens GeoGebra window) - // appletParam(sb, "framePossible", cbShowFrame.isSelected(), type); - // showResetIcon - appletParam(sb, "showResetIcon", cbShowResetIcon.isSelected(), type); + appletParam(sb, showResetIcon, cbShowResetIcon.isSelected(), type); // TODO: implement show animation controls - appletParam(sb, "showAnimationButton", true, type); + //appletParam(sb, showAnimationButton, true, type); // enable right click - appletParam(sb, "enableRightClick", cbEnableRightClick.isSelected(), type); + appletParam(sb, enableRightClick, cbEnableRightClick.isSelected(), type); // enable error dialogs - appletParam(sb, "errorDialogsActive", true, type);// sb.append(cbEnableErrorDialogs.isSelected()); + appletParam(sb, errorDialogsActive, true, type);// sb.append(cbEnableErrorDialogs.isSelected()); // enable label drags - appletParam(sb, "enableLabelDrags", cbEnableLabelDrags.isSelected(), type); + appletParam(sb, enableLabelDrags, cbEnableLabelDrags.isSelected(), type); // showMenuBar - appletParam(sb, "showMenuBar", cbShowMenuBar.isSelected(), type); + appletParam(sb, showMenuBar, cbShowMenuBar.isSelected(), type); // showToolBar - appletParam(sb, "showToolBar", cbShowToolBar.isSelected(), type); + appletParam(sb, showToolBar, cbShowToolBar.isSelected(), type); // showToolBarHelp - appletParam(sb, "showToolBarHelp", cbShowToolBarHelp.isSelected(), type); + appletParam(sb, showToolBarHelp, cbShowToolBarHelp.isSelected(), type); // showAlgebraInput - appletParam(sb, "showAlgebraInput", cbShowInputField.isSelected(), type); + appletParam(sb, showAlgebraInput, cbShowInputField.isSelected(), type); // Use Browser for JavaScript (eg Buttons) - appletParam(sb, "useBrowserForJS", cbUseBrowserForJavaScript.isSelected(), + appletParam(sb, useBrowserForJS, cbUseBrowserForJavaScript.isSelected(), type); // allowRescaling - appletParam(sb, "allowRescaling", cbAllowRescaling.isSelected(), type); + appletParam(sb, allowRescaling, cbAllowRescaling.isSelected(), type); } @@@ -1768,17 -1742,17 +1747,17 @@@ // JVM arguments, for Java 1.6.0_10 and later // increase heap memory for applets - String javaArgs = "-Xmx" + GeoGebra.MAX_HEAP_SPACE - + "m -Djnlp.packEnabled=true"; + String javaArgs = "-Xmx" + GeoGebra.MAX_HEAP_SPACE+ "m"; + // TODO: include pack.gz files in offline export - // if (cbOfflineArchive.isSelected()) { - // // look for local pack200 files: jar.pack.gz - // javaArgs += " -Djnlp.packEnabled=true"; - // } + if (!cbOfflineJars.isSelected()) { + // look for local pack200 files: jar.pack.gz + javaArgs += " -Djnlp.packEnabled=true"; + } // sb.append("\t<param name=\"java_arguments\" value=\"" + javaArgs + // "\" />"); - appletParam(sb, "java_arguments", javaArgs, type); + appletParam(sb, java_arguments, javaArgs, type); // add caching information to help JVM with faster applet loading // sb.append("\t<param name=\"cache_archive\" value=\""); @@@ -1790,7 -1764,7 +1769,7 @@@ } // sb.append("\" />"); - appletParam(sb, "cache_archive", sb2.toString(), type); + appletParam(sb, cache_archive, sb2.toString(), type); // cache versions of jar files: if this version is already present on the // client @@@ -1804,10 -1778,9 +1783,9 @@@ sb2.append(", "); } // sb.append("\" />"); - appletParam(sb, "cache_version", sb2.toString(), type); + appletParam(sb, cache_version, sb2.toString(), type); appendGgbAppletParameters(sb, type); - } } -- GeoGebra: Dynamic mathematics software for education _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits