/* Copyright (C) Paul Falstad and Iain Sharp This file is part of CircuitJS1. CircuitJS1 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. CircuitJS1 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with CircuitJS1. If not, see <http://www.gnu.org/licenses/>. */ package com.lushprojects.circuitjs1.client; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.HasHorizontalAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.TextArea; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.RichTextArea; import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.safehtml.shared.SafeHtml; public class ExportAsTextDialog extends DialogBox { VerticalPanel vp; CirSim sim; TextArea textArea; public ExportAsTextDialog(CirSim asim, String s) { super(); sim = asim; // RichTextArea tb; TextArea ta; Button okButton, importButton; Label la2; SafeHtml html; vp=new VerticalPanel(); setWidget(vp); setText(sim.LS("Export as Text")); vp.add(new Label(sim.LS("Text file for this circuit is..."))); // vp.add(tb = new RichTextArea()); // html=SafeHtmlUtils.fromString(s); // html=SafeHtmlUtils.fromTrustedString(html.asString().replace("\n", "<BR>")); // tb.setHTML(html); vp.add(ta= new TextArea()); ta.setWidth("300px"); ta.setHeight("200px"); ta.setText(s); textArea = ta; vp.add(la2 = new Label(sim.LS("To save this file select it all (eg click in text and type control-A) and copy to your clipboard (eg control-C) before pasting to an empty text file (eg on Windows Notepad) and saving as a new file."), true)); la2.setWidth("300px"); HorizontalPanel hp = new HorizontalPanel(); hp.setWidth("100%"); hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT); hp.setStyleName("topSpace"); vp.add(hp); hp.add(okButton = new Button(sim.LS("OK"))); hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); hp.add(importButton = new Button(sim.LS("Re-Import"))); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { closeDialog(); } }); importButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { String s; sim.pushUndo(); closeDialog(); // s=textBox.getHTML(); // s=s.replace("<br>", "\r"); s=textArea.getText(); if (s!=null) sim.readSetup(s, true); } }); this.center(); } protected void closeDialog() { this.hide(); } }