[SCM] GeoGebra: Dynamic mathematics software for education branch, patch/applet_export, updated. upstream/4.0.19.0+dfsg1-182-gc75c1ef

Giovanni Mascellani mascellani at poisson.phc.unipi.it
Fri May 11 22:32:22 UTC 2012


The following commit has been merged in the patch/applet_export branch:
commit c75c1ef84ae19976ffebae4a94e99059c712d8ed
Merge: b7791915d46a21811b688ab2b2d50670f2cda0b7 cb0585b952c976be56d9811276f8222975abd743
Author: Giovanni Mascellani <mascellani at 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



More information about the pkg-java-commits mailing list