Advertisement
Guest User

Pivot+svgSalamander

a guest
Feb 1st, 2015
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.00 KB | None | 0 0
  1. package org.fullthrust.client;
  2. import java.io.ByteArrayInputStream;
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.io.StringWriter;
  6.  
  7. import org.apache.pivot.collections.Map;
  8. import org.apache.pivot.wtk.Application;
  9. import org.apache.pivot.wtk.BoxPane;
  10. import org.apache.pivot.wtk.Button;
  11. import org.apache.pivot.wtk.ButtonPressListener;
  12. import org.apache.pivot.wtk.DesktopApplicationContext;
  13. import org.apache.pivot.wtk.Display;
  14. import org.apache.pivot.wtk.ImageView;
  15. import org.apache.pivot.wtk.PushButton;
  16. import org.apache.pivot.wtk.Window;
  17. import org.apache.pivot.wtk.media.Drawing;
  18. import org.apache.pivot.wtk.media.SVGDiagramSerializer;
  19.  
  20. import com.kitfox.svg.SVGDiagram;
  21. import com.kitfox.svg.SVGElement;
  22. import com.kitfox.svg.SVGElementException;
  23. import com.kitfox.svg.SVGException;
  24. import com.kitfox.svg.animation.AnimationElement;
  25.  
  26.  
  27.  
  28. public class TestClient3 implements Application {
  29.  
  30.  
  31.     // Display stuff
  32.     protected SVGDiagram diagram;
  33.     protected SVGElement root;
  34.     protected Window window;
  35.    
  36.     public static void main(String[] args) {
  37.         DesktopApplicationContext.main(TestClient3.class, args);
  38.     }
  39.    
  40.  
  41.     @Override
  42.     public void startup(Display display, Map<String, String> properties) {
  43.         window = new Window();
  44.        
  45.         prepareSVG();
  46.        
  47.         final ImageView image = new ImageView(new Drawing(diagram));
  48.        
  49.         BoxPane bp = new BoxPane();
  50.        
  51.         PushButton pb1 = new PushButton("Visible");
  52.         PushButton pb2 = new PushButton("Invisible (bug)");
  53.        
  54.         bp.add(image);
  55.         bp.add(pb1);
  56.         bp.add(pb2);
  57.        
  58.         pb1.getButtonPressListeners().add(new ButtonPressListener(){
  59.  
  60.             @Override
  61.             public void buttonPressed(Button arg0) {
  62.                 try {
  63.                     root.setAttribute("viewBox", AnimationElement.AT_XML, "0 0 2368 1652");
  64.                     root.updateTime(0f);
  65.                     image.repaint();
  66.                 } catch (SVGElementException e) {
  67.                     e.printStackTrace();
  68.                 } catch (SVGException e) {
  69.                     e.printStackTrace();
  70.                 }
  71.             }
  72.            
  73.         });
  74.        
  75.         pb2.getButtonPressListeners().add(new ButtonPressListener(){
  76.  
  77.             @Override
  78.             public void buttonPressed(Button arg0) {
  79.                 try {
  80.                     root.setAttribute("viewBox", AnimationElement.AT_XML, "800 0 2368 1652");
  81.                     root.updateTime(0f);
  82.                     image.repaint();
  83.                 } catch (SVGElementException e) {
  84.                     e.printStackTrace();
  85.                 } catch (SVGException e) {
  86.                     e.printStackTrace();
  87.                 }
  88.             }
  89.            
  90.         });
  91.        
  92.         window.setContent(bp);
  93.        
  94.        
  95.         window.open(display);
  96.     }
  97.  
  98.     @Override
  99.     public boolean shutdown(boolean optional) {
  100.         if (window != null) {
  101.             window.close();
  102.         }
  103.  
  104.         return false;
  105.     }
  106.  
  107.    
  108.     protected void prepareSVG() {
  109.         SVGDiagramSerializer s = new SVGDiagramSerializer();
  110.        
  111.         try {
  112.             diagram = s.readObject(new ByteArrayInputStream(makeDynamicSVG().getBytes()));
  113.             root = diagram.getRoot();
  114.         } catch (IOException e) {
  115.             e.printStackTrace();
  116.         }
  117.     }
  118.  
  119.     private String makeDynamicSVG() {
  120.         StringWriter sw = new StringWriter();
  121.         PrintWriter pw = new PrintWriter(sw);
  122.  
  123.         pw.println("<svg width=\"800\" height=\"600\" style=\"fill:none;stroke-width:2\" viewBox=\"0 0 2368 1652\">");
  124.         pw.println("<rect x=\"0\" y=\"0\" width=\"2000\" height=\"1000\" style=\"stroke:blue;fill:blue\"/>");
  125.         pw.println("</svg>");
  126.  
  127.         pw.close();
  128.         return sw.toString();
  129.     }
  130.    
  131.     @Override
  132.     public void resume() throws Exception {}
  133.     @Override
  134.     public void suspend() throws Exception {}
  135.    
  136.    
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement