Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.fullthrust.client;
- import java.io.ByteArrayInputStream;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.io.StringWriter;
- import org.apache.pivot.collections.Map;
- import org.apache.pivot.wtk.Application;
- import org.apache.pivot.wtk.BoxPane;
- import org.apache.pivot.wtk.Button;
- import org.apache.pivot.wtk.ButtonPressListener;
- import org.apache.pivot.wtk.DesktopApplicationContext;
- import org.apache.pivot.wtk.Display;
- import org.apache.pivot.wtk.ImageView;
- import org.apache.pivot.wtk.PushButton;
- import org.apache.pivot.wtk.Window;
- import org.apache.pivot.wtk.media.Drawing;
- import org.apache.pivot.wtk.media.SVGDiagramSerializer;
- import com.kitfox.svg.SVGDiagram;
- import com.kitfox.svg.SVGElement;
- import com.kitfox.svg.SVGElementException;
- import com.kitfox.svg.SVGException;
- import com.kitfox.svg.animation.AnimationElement;
- public class TestClient3 implements Application {
- // Display stuff
- protected SVGDiagram diagram;
- protected SVGElement root;
- protected Window window;
- public static void main(String[] args) {
- DesktopApplicationContext.main(TestClient3.class, args);
- }
- @Override
- public void startup(Display display, Map<String, String> properties) {
- window = new Window();
- prepareSVG();
- final ImageView image = new ImageView(new Drawing(diagram));
- BoxPane bp = new BoxPane();
- PushButton pb1 = new PushButton("Visible");
- PushButton pb2 = new PushButton("Invisible (bug)");
- bp.add(image);
- bp.add(pb1);
- bp.add(pb2);
- pb1.getButtonPressListeners().add(new ButtonPressListener(){
- @Override
- public void buttonPressed(Button arg0) {
- try {
- root.setAttribute("viewBox", AnimationElement.AT_XML, "0 0 2368 1652");
- root.updateTime(0f);
- image.repaint();
- } catch (SVGElementException e) {
- e.printStackTrace();
- } catch (SVGException e) {
- e.printStackTrace();
- }
- }
- });
- pb2.getButtonPressListeners().add(new ButtonPressListener(){
- @Override
- public void buttonPressed(Button arg0) {
- try {
- root.setAttribute("viewBox", AnimationElement.AT_XML, "800 0 2368 1652");
- root.updateTime(0f);
- image.repaint();
- } catch (SVGElementException e) {
- e.printStackTrace();
- } catch (SVGException e) {
- e.printStackTrace();
- }
- }
- });
- window.setContent(bp);
- window.open(display);
- }
- @Override
- public boolean shutdown(boolean optional) {
- if (window != null) {
- window.close();
- }
- return false;
- }
- protected void prepareSVG() {
- SVGDiagramSerializer s = new SVGDiagramSerializer();
- try {
- diagram = s.readObject(new ByteArrayInputStream(makeDynamicSVG().getBytes()));
- root = diagram.getRoot();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private String makeDynamicSVG() {
- StringWriter sw = new StringWriter();
- PrintWriter pw = new PrintWriter(sw);
- pw.println("<svg width=\"800\" height=\"600\" style=\"fill:none;stroke-width:2\" viewBox=\"0 0 2368 1652\">");
- pw.println("<rect x=\"0\" y=\"0\" width=\"2000\" height=\"1000\" style=\"stroke:blue;fill:blue\"/>");
- pw.println("</svg>");
- pw.close();
- return sw.toString();
- }
- @Override
- public void resume() throws Exception {}
- @Override
- public void suspend() throws Exception {}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement