Drawing Line to connect canvas components

I have drawings on canvas components which I have added to a frame. I would like to connect the drawings in the canvas components using a line to connect the drawings inside the canvas components together. If I draw a line in a new canvas and add this component to the frame, the rectangular background of this canvas will cover part of the drawings of the two canvas components I am trying to connect the line to. Is there a way to create a line component that does what I want?

just try this:
1. create a component in which you can put yours different canvases
2. create an image where you put in the actual display of the component (like a doublebuffer image (offscreenimage))
3. modifie this image

Similar Messages

  • How to draw line to connect components dynamically??

    Dear Friends:
    I have following code is for drag/drop label, I hope to draw straight line to connect any TWO or more labels within this panel,
    [1]. keep all connected line
    [2]. can draw dynamically,
    I search quite a while with google, still very confused,
    Can any guru throw aome light how to do
    [1]. code 1:
    package swing.dnd;
    import java.awt.*;
    import javax.swing.*;
    public class TestDragComponent extends JFrame {
         public TestDragComponent() {
              super("Test");
              Container c = getContentPane();
              c.setLayout(new GridLayout(1,2));
              c.add(new MoveableComponentsContainer());
              c.add(new MoveableComponentsContainer());
              pack();
              setVisible(true);
         public static void main(String[] args) {
              try {
                   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
              catch (Exception ex) {
                   System.out.println(ex);
              new TestDragComponent();
    [2]. Code 2:
    package swing.dnd;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.border.*;
    import java.awt.dnd.*;
    import java.awt.datatransfer.*;
    import java.awt.image.*;
    import java.awt.dnd.DragSource;
    import java.awt.dnd.DropTarget;
    public class MoveableComponentsContainer extends JPanel {     
         public DragSource dragSource;
         public DropTarget dropTarget;
         private static BufferedImage buffImage = null; //buff image
         private static Point cursorPoint = new Point();
         public MoveableComponentsContainer() {
              setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED, Color.white, Color.gray));
              setLayout(null);
              dragSource = new DragSource();
              ComponentDragSourceListener tdsl = new ComponentDragSourceListener();
              dragSource.createDefaultDragGestureRecognizer(this, DnDConstants.ACTION_COPY_OR_MOVE, new ComponentDragGestureListener(tdsl));
              ComponentDropTargetListener tdtl = new ComponentDropTargetListener();
              dropTarget = new DropTarget(this, DnDConstants.ACTION_MOVE, tdtl);
              setPreferredSize(new Dimension(400,400));
              addMoveableComponents();
         private void addMoveableComponents() {
              MoveableLabel lab = new MoveableLabel("label 1");
              add(lab);
              lab.setLocation(10,10);
              lab = new MoveableLabel("label 2");
              add(lab);
              lab.setLocation(40,40);
              lab = new MoveableLabel("label 3");
              add(lab);
              lab.setLocation(70,70);
              lab = new MoveableLabel("label 4");
              add(lab);
              lab.setLocation(100,100);
         final class ComponentDragSourceListener implements DragSourceListener {
              public void dragDropEnd(DragSourceDropEvent dsde) {
              public void dragEnter(DragSourceDragEvent dsde)  {
                   int action = dsde.getDropAction();
                   if (action == DnDConstants.ACTION_MOVE) {
                        dsde.getDragSourceContext().setCursor(DragSource.DefaultMoveDrop);
                   else {
                        dsde.getDragSourceContext().setCursor(DragSource.DefaultMoveNoDrop);
              public void dragOver(DragSourceDragEvent dsde) {
                   int action = dsde.getDropAction();
                   if (action == DnDConstants.ACTION_MOVE) {
                        dsde.getDragSourceContext().setCursor(DragSource.DefaultMoveDrop);
                   else {
                        dsde.getDragSourceContext().setCursor(DragSource.DefaultMoveNoDrop);
              public void dropActionChanged(DragSourceDragEvent dsde)  {
                   int action = dsde.getDropAction();
                   if (action == DnDConstants.ACTION_MOVE) {
                        dsde.getDragSourceContext().setCursor(DragSource.DefaultMoveDrop);
                   else {
                        dsde.getDragSourceContext().setCursor(DragSource.DefaultMoveNoDrop);
              public void dragExit(DragSourceEvent dse) {
                 dse.getDragSourceContext().setCursor(DragSource.DefaultMoveNoDrop);
         final class ComponentDragGestureListener implements DragGestureListener {
              ComponentDragSourceListener tdsl;
              public ComponentDragGestureListener(ComponentDragSourceListener tdsl) {
                   this.tdsl = tdsl;
              public void dragGestureRecognized(DragGestureEvent dge) {
                   Component comp = getComponentAt(dge.getDragOrigin());
                   if (comp != null && comp != MoveableComponentsContainer.this) {
                        cursorPoint.setLocation(SwingUtilities.convertPoint(MoveableComponentsContainer.this, dge.getDragOrigin(), comp));
                        buffImage = new BufferedImage(comp.getWidth(), comp.getHeight(), java.awt.image.BufferedImage.TYPE_INT_ARGB_PRE);//buffered image reference passing the label's ht and width
                        Graphics2D graphics = buffImage.createGraphics();//creating the graphics for buffered image
                        graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));     //Sets the Composite for the Graphics2D context
                        boolean opacity = ((JComponent)comp).isOpaque();
                        if (opacity) {
                             ((JComponent)comp).setOpaque(false);                         
                        comp.paint(graphics); //painting the graphics to label
                        if (opacity) {
                             ((JComponent)comp).setOpaque(true);                         
                        graphics.dispose();
                        remove(comp);
                        dragSource.startDrag(dge, DragSource.DefaultMoveDrop , buffImage, cursorPoint, new TransferableComponent(comp), tdsl);     
                        revalidate();
                        repaint();
         final class ComponentDropTargetListener implements DropTargetListener {
              private Rectangle rect2D = new Rectangle();
              Insets insets;
              public void dragEnter(DropTargetDragEvent dtde) {
                   Point pt = dtde.getLocation();
                   paintImmediately(rect2D.getBounds());
                   rect2D.setRect((int) (pt.getX()-cursorPoint.getX()),(int) (pt.getY()-cursorPoint.getY()),buffImage.getWidth(),buffImage.getHeight());
                   ((Graphics2D) getGraphics()).drawImage(buffImage,(int) (pt.getX()-cursorPoint.getX()),(int) (pt.getY()-cursorPoint.getY()),MoveableComponentsContainer.this);
                   dtde.acceptDrag(dtde.getDropAction());
              public void dragExit(DropTargetEvent dte) {
                   paintImmediately(rect2D.getBounds());
              public void dragOver(DropTargetDragEvent dtde) {
                   Point pt = dtde.getLocation();
                   paintImmediately(rect2D.getBounds());
                   rect2D.setRect((int) (pt.getX()-cursorPoint.getX()),(int) (pt.getY()-cursorPoint.getY()),buffImage.getWidth(),buffImage.getHeight());
                   ((Graphics2D) getGraphics()).drawImage(buffImage,(int) (pt.getX()-cursorPoint.getX()),(int) (pt.getY()-cursorPoint.getY()),MoveableComponentsContainer.this);
                   dtde.acceptDrag(dtde.getDropAction());
              public void dropActionChanged(DropTargetDragEvent dtde) {
                   Point pt = dtde.getLocation();
                   paintImmediately(rect2D.getBounds());
                   rect2D.setRect((int) (pt.getX()-cursorPoint.getX()),(int) (pt.getY()-cursorPoint.getY()),buffImage.getWidth(),buffImage.getHeight());
                   ((Graphics2D) getGraphics()).drawImage(buffImage,(int) (pt.getX()-cursorPoint.getX()),(int) (pt.getY()-cursorPoint.getY()),MoveableComponentsContainer.this);
                   dtde.acceptDrag(dtde.getDropAction());
              public void drop(DropTargetDropEvent dtde) {
                   try {
                        paintImmediately(rect2D.getBounds());
                        int action = dtde.getDropAction();
                        Transferable transferable = dtde.getTransferable();
                        if (transferable.isDataFlavorSupported(TransferableComponent.COMPONENT_FLAVOR)) {
                             Component comp = (Component) transferable.getTransferData(TransferableComponent.COMPONENT_FLAVOR);
                             Point location = dtde.getLocation();
                             if (comp == null) {
                                  dtde.rejectDrop();
                                  dtde.dropComplete(false);
                                  revalidate();
                                  repaint();
                                  return;                              
                             else {                         
                                  add(comp, 0);
                                  comp.setLocation((int)(location.getX()-cursorPoint.getX()),(int)(location.getY()-cursorPoint.getY()));
                                  dtde.dropComplete(true);
                                  revalidate();
                                  repaint();
                                  return;
                        else {
                             dtde.rejectDrop();
                             dtde.dropComplete(false);
                             return;               
                   catch (Exception e) {     
                        System.out.println(e);
                        dtde.rejectDrop();
                        dtde.dropComplete(false);
    Thanks so much for any help.
    Reagrds
    sunny

    Craig Wood's code here might do what you want
    http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=2&t=015259

  • Complete box? drawing lines

    Hello,
    I want to allow a user to draw lines on a canvas and then know when all the points make up an area that is a box.
    How can this be done? What checks would I need to do everytime a line is drawn?

    A few fixes:
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import javax.swing.*;
    public class ClickHere extends JPanel {
        private GeneralPath path;
        private int startX=-1, startY=-1;
        private Color foreground = Color.RED;
        public ClickHere() {
            addMouseListener(new MouseAdapter(){
                public void mousePressed(MouseEvent evt) {
                    int x = ((evt.getX()+5)/10)*10;
                    int y = ((evt.getY()+5)/10)*10;
                    if (path == null) {
                        path = new GeneralPath();
                        path.moveTo(x, y);
                        startX = x;
                        startY = y;
                    } else if (x==startX && y == startY) {
                        path.closePath();
                        foreground = Color.GREEN;
                        removeMouseListener(this);
                    } else
                        path.lineTo(x, y);
                    repaint();
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            if (path != null) {
                Graphics2D g2 = (Graphics2D) g;
                g2.setColor(foreground);
                g2.drawRect(startX-2, startY-2, 5, 5);
                g2.draw(path);
        public static void main(String[] args) {
            JFrame f = new JFrame("ClickHere");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(new ClickHere());
            f.setSize(450, 400);
            f.setLocationRelativeTo(null);
            f.setVisible(true);
    }

  • How to connect Canvas object by line ?

    I want to make an application which can draw object
    relationship like UML. for example , after i made the replationship
    between two object (draw line), when i drag one object , the line
    will be updated automatically .And when i select the connect line ,
    this line object will be selected also .
    It seems that ,the Grpahic's drawline method is not the
    correct choice , how can i do for that ? Make a new control ?
    I use the Canvas container as the drawing area.
    thanks for your reply.

    or , How can i use the MouseEvent to get the draw line ?
    What is the object type of a draw line ?

  • Draw lines on an obiee 11.1.1.7.1 map.

    What is the best approach to drawing lines on an obiee 11.1.1.17 map.
    The base map is created In mapbuilder 11.1.1.7.3.
    Our data is stored in our data warehouse. Right now we have 2 million rows in the table. Each row represents an x,y point on the map.
    A typical query in the obiee analysis can return  20- 30 x,y positions on the map. We are only at this time showing points on the map. We would like to present the positions as a line (arrow) showing the direction of flow (ordered by time) from one point to the next point, etc.
    Our question – how can we  draw these lines on the obiee map?
    (For instance, is it better with User Defined FOI layers or is it better using Theme-based FOI layers).
    Best Regards
    Joel

    Hi Again!
    We have managed to get the map with line into our obiee dashboard using the Oracle Maps JS API.
    We are taking the data points in our rapport and sending them with the narrative view to the java script functions as described in the workshop examples. It works nicely.
    We are now wondering if we can draw this line onto a map that is created using the maps view in our obiee rapport. Our goal is show the line together with all the points. We could of course script this in our javascript, however we would like to show the points in our obiee map view together with a line connecting the points.
    As it is now in our "draw the line solution", we define a DIV for the map display
    <DIV id="map" style="width:400px;height:300px;padding:10px;"></DIV>
    And then in our javascript function we use the
    var mapview = new MVMapView(document.getElementById("map"), baseURL);
    We are wondering here if we can point to an obiee map view instead of the DIV “map” 
    We have tried various combinations of static text with javascript together with a map view, but can’t get a line to draw on the map.
    Does anyone have any idea how we can get our line into a map view?
    Best Regards
    Joel

  • Draw line with float values possible

    Hi,
    Using Canvas drawing is possible to draw line with float values.
    graphics.drawLine(int,int,int,int);
    graphics.drawLine(float,float,float,float);Thanks and regards,
    Rakesh.

    not possible
    graphics.drawLine(float,float,float,float);...there's no such method in MIDP API: [click here for javadoc of Graphics class methods|http://java.sun.com/javame/reference/apis/jsr118/javax/microedition/lcdui/Graphics.html#drawLine(int,%20int,%20int,%20int)]

  • Problem draw line

    I have one problem with this code for draw line
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute" mouseMove="fn_init()">
    <mx:Script>
    <![CDATA[
    private function fn_init():void{
    var g:Graphics = graphics;
    this.removeAllChildren();
    g.lineStyle(1, 0x999999);
    g.lineTo(0,0);
    g.moveTo(this.mouseX, this.mouseY);
    this.addChild(g);
    ]]>
    </mx:Script>
    </mx:Application>
    Above this code it display error when i complie it
    "1067: Implicit coercion of a value of type
    flash.display:Graphics to an unrelated type
    flash.display:DisplayObject."
    Please help me to solve this problem.

    hey try this:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute" backgroundColor="white">
    <mx:Canvas id="mainCanvas" width="100%" height="100%"
    mouseMove="fn_init()" />
    <mx:Script>
    <![CDATA[
    private function fn_init():void{
    mainCanvas.removeAllChildren();
    mainCanvas.graphics.lineStyle(1, 0x999999);
    mainCanvas.graphics.lineTo(0,0);
    mainCanvas.graphics.moveTo(this.mouseX, this.mouseY);
    ]]>
    </mx:Script>
    </mx:Application>

  • How to draw lines in FCPX ?

    Hi there,
    I would like to have a simple Effects that will draw lines in various shape such as circle, ellipse or rectangle. How do I do it ?
    I need it because I want to have an effect that is drawing an ellipse over the text.
    Any ideas ?
    Thanks

    ok... hmmm...
    You can create control points for a line but you cannot animate the control points in FCPX. If you're okay with that, then here are the basics:
    Create a new top level group. Name it OSCs.
    In the Inspector, select the group and in the Group tab of the inspector, select Fixed Resolution. (It should already be set to 2D - if not - set 2D)
    In the Properties > Timing pane, set the length (Duration) of the group to at least as long as your project. (this step is not important in Motion but absolutely necessary for FCPX!)
    With the new group selected, add the filters you will use as control points. In general, every starts with Filters > Distortion > Poke. You will need two of them. For each Poke filter, select Publish OSC in the inspector. (I recommend renaming each filter - startOSC, endOSC for example.)
    Create another new group.
    Go into the Library > Content and search for Crosshair -- there's three of them, use Crosshair-Minute (they're the smallest ones.) Add two of them. (It's not necessary that they're in their own group -- just more convenient.) Rename the crosshairs: keeping with the OSCs, I recommend start and end, for example.
    Draw a Line.
    To the shape (line), add two Behaviors > Shape > Track Points.
    Rename the Track Points: Start and End.
    In the Behaviors inspector for the Track Points, drag the start Crosshair image into the Source well of the Start track points and the end Crosshair image into the End Track Points. The behavior parameters will change and you'll see a bunch of new stuff. Down at the bottom, you'll see Track 1 and Track 2 — leave one checked for one of the behaviors and the other one checked for the second behavior (that's 1 track 1 and 1 track 2.) You'll also see that the Transform is set to Mimic Source.  What you need to do is click the reset button on the Checked Track of each behavior and THEN change the Transform to Attach to Source. Once you do that, the line ends will snap to crosshair images (use Properties Transform X to move the crosshairs apart temporarily.)
    Next step:
    Select the start crosshair and in the Inspector > Properties, dial down the Position to reveal the XYZ parameters. Right click on the X and select Add Parameter Behavior > Link.  Repeat this step for the Y parameter (you cannot link Position.All for this step.)
    In the Behaviors inspector, for the start crosshair:
          For the Source Object, drag the OSCs group into the well.
    for the X parameter
          For the Source Parameter, set Filters.startOSC.Center.X for the Position.X
                                                 and set Filters.startOSC.Center.Y for the Position.Y
    You will notice the line end disappear off the screen. This is normal. To correct this, at the bottom of each behavior, set the X (or Y) offset to -0.5.
    Repeat for the end crosshair.
    You can turn off the crosshairs (uncheck the layers.)
    To test your OSCs, select *both* startOSC and endOSC (command select each layer) -- both Poke OSCs will appear and you can drag them around the canvas. The line should follow as you would expect if you've set everything up correctly.
    Publish the template.
    A couple of explanations:
    2D fixed resolution for the OSC group:  Groups in Motion that are not fixed resolution can dynamically change their boundaries. There are no fixed points of reference for Motion to calulate. If you forget to set Fixed Resolution, you can repair the condition by setting the Fixed Resolution option and then go into the Filters pane and reset the Center parameters for each Poke OSC.
    Offsets of -0.5:  All resolutions in the Canvas are calculated by the resolution of the X and Y dimensions of the project times the fractional position of objects (from 0.0 on the left side for X and on the bottom for Y — to 1.0 on the right side for X and on the top for Y.) The center of the canvas is 0, 0 in pixels of whatever the resolution is.  To adjust the fractional position used by the OSCs (and others) to the center pixel, the value needs to be moved by 1/2 of that distance.
    Clear as mud?  Once you've done it a few times, it will all become second nature.
    One more thing: you can publish curves... complex ones. But they have to be B-spline (you track all the points in a similar manner outlined above) and not Bezier. There's no way to control the handles for bezier curves.

  • Problem in drawing line in script tag of mxml file

    hai i am new in flex .i was trying to draw line in mxml(using mxml ) and did it.
    then i try this in actionscript by making as file and shape class object again did it
    but
    when i put that specific function in <fx:script> tag of mxml file and call it by mouseover method it is not drawing a line.i am sure that on mouse over function was called .but dont know why line is nort draw here.
    Here is my code:
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
        xmlns:mx="library://ns.adobe.com/flex/mx">
        <fx:Script>
            <![CDATA[
            import flash.display.Shape;
            var s:Shape = new Shape();
            public function myMain():void
                // Launch your application by right clicking within this class and select: Deubg As > FDT SWF Application
            so.text="button is cliked";
            s.graphics.lineStyle(3, 0x00FF00,.5);       
            s.graphics.lineTo(200, 200);
            this.addChild(s);
            so.text="button is cliked";
            ]]>
        </fx:Script>
        <mx:Label alpha=".3" id="so" mouseOver="myMain()" text="Button"/>
    </s:Application>
    Can anyone tell me where i am going wrong.

    It's a good idea to run you code in the debugger because you will be notified of runtime exceptions that the release version of the Flash Player will not show you. Here's the runtime error I got when running your example:
    Error: addChild() is not available in this class. Instead, use addElement() or modify the skin, if you have one.
         atspark.components.supportClasses::SkinnableComponent/addChild()[frameworks\projects\ spark\src\spark\components\supportClasses\SkinnableComponent.as:1118]
         at myMain()[b.mxml:19]
         at __so_mouseOver()[b.mxml:27]
    The problem with your app is it is calling addChild(), which is not supported on s:Application. You need to call addElement() instead. addElement() only takes an object of type IVisualElement so you need to make your shape a UIComponent.  Try this:
                import mx.core.UIComponent;
                private var s:UIComponent = new UIComponent();
                public function myMain():void
                    // Launch your application by right clicking within this class and select: Deubg As > FDT SWF Application
                    so.text="button is cliked";
                    s.graphics.lineStyle(3, 0x00FF00,.5);
                    s.graphics.lineTo(200, 200);
                    this.addElement(s);
                    so.text="button is cliked";
    -Darrell

  • Draw line(s)

    Hi,
    I am wondering how can I draw lines b/w two points. I assume there should be spatial function where I can pass lat,lon of first and second point.......
    any help is appreciated.
    Al

    You can use Luc's function, but it's quite easy to insert newly created geometry:
    INSERT INTO cola_markets VALUES(
    2,
    'cola_b',
    SDO_GEOMETRY(
    2002, -- two-dimensional line
    NULL, -- SRID - identifies coordinate system
    NULL, -- If it's a point, you can put that here
    SDO_ELEM_INFO_ARRAY(1,2,1), -- single line, points connected by straight lines
    SDO_ORDINATE_ARRAY(5,1, 8,1)
    and it's not that difficult to create a function that you call which takes 4 parameters (x1,y1,x2,y2) which calls something like the above statement.
    If you have WKT or WKB (Well Known Text or Well Known Binary info, you can use these:
    SDO_GEOMETRY(wkt CLOB, srid NUMBER DEFAULT NULL);
    SDO_GEOMETRY(wkt VARCHAR2, srid NUMBER DEFAULT NULL);
    SDO_GEOMETRY(wkb BLOB, srid NUMBER DEFAULT NULL);
    But there is no specific function to 'draw' a line (you can use third-party tools for that though, there's a lot of them out there that do offer graphical interfaces to Oracle Spatial Data).

  • Draw lines jspx

    Hello,
    I'm using jdeveloper 11.1.1.6.0 and I'm trying to make an web application that allows me to draw lines. First i did the project in HTML:
    <!DOCTYPE HTML>
    <html>
      <head>
        <script>
          window.onload = function() {
            var canvas = document.getElementById("myCanvas");
            var context = canvas.getContext("2d");
            context.beginPath();
            context.moveTo(100, 150);
            context.lineTo(50, 50);
            context.stroke();
        </script>
      </head>
      <body>
        <canvas id="myCanvas" width="578" height="200"></canvas>
      </body>
    </html>This works fine, but when I insert the label <canvas id="myCanvas" width="578" height="200"> </ canvas> jspx file, I get the error Element 'canvas' not expectedWhat am I doing wrong?

    I just try "<h:canvas> </ canvas>" and I get the same error, so I think that the problem is that the element "canvas" is from html5 and the html that creates jsp is html 4.01.
    I've tried with jspx but I get the same result

  • How can I tell if my phone line is connected to a ...

    Hi, I have been trying to find out if my phone line is connected to the street cabinet or directly to the exchange as the checker says I am unable to get bt infinity. The house 2 doors away seems to be able to get it and having looked at the spreadsheet (google fusion table) it says that 42% of line on my postcode are enabled. Is there a way of finding if I am in that 42%. My postcode: tn104pb Hope someone can help Thanks

    DeanM wrote:
    I vaguely remember being informed that something like 4% of telephone lines in the UK are EO - I'm afraid I don't have any references with which to back that up though
    Having worked in that part of the network for many years, I don`t think I remember any personal customers on EO cables.
    Office blocks, or old established businesses in city centres, were the only ones. That would account for the 4%.
    The lack of flexibility was the main issue with EO cables, with the volume of "churn" of domestic customers, it would not have been practical.
    There are some useful help pages here, for BT Broadband customers only, on my personal website.
    BT Broadband customers - help with broadband, WiFi, networking, e-mail and phones.

  • How to draw line on SAP form

    Hi everyone,
    Who have a good way to draw lines on SAP form?
    I created a Wizard form, and use Rectangle (Height=0) as the two lines between title and bottom button, but I met a problem, when show another form which cover the line, after close this form, some part of lines disappear, I have tried using SAP form refresh, it still can not restore showing line completely, who have good way to workaround the problem or give me another way to draw line.
    Thanks in advance!
    Kathy

    The only way I found to get a form looking really close to a standard B1 Wizard form is to use bitmaps.  I use 3 - one each for the top, bottom and left hand side.  The bitmaps include the line drawing and appropriate pictures/background colours.  I normally define these in the XML used to create the form as in the following example:-
    <item uid="PTOP" type="117" left="0" width="566" top="0" height="80" visible="1" enabled="1" from_pane="0" to_pane="0">
            <AutoManagedAttribute/>
            <specific picture="AZU_SPC_WIZ_TOP2.bmp">
                    <databind databound="0" table="" alias=""/>
            </specific>
    </item>
    <item uid="PBOT" type="117" left="0" width="566" top="336" height="40" visible="1" enabled="1" from_pane="0" to_pane="0">
            <AutoManagedAttribute/>
            <specific picture="AZU_SPC_WIZ_BOT.bmp">
                    <databind databound="0" table="" alias=""/>
            </specific>
    </item>
    <item uid="PLEFT" type="117" left="0" width="100" top="0" height="336" visible="1" enabled="1" from_pane="1" to_pane="1">
            <AutoManagedAttribute/>
            <specific picture="AZU_SPC_WIZ9.bmp">
                    <databind databound="0" table="" alias=""/>
            </specific>
    </item>
    John.

  • Reducing PDF-size: automatic reduction of datapoints that are used to draw lines in a 2d-axis system within report

    Creating fancy pdf-files for costumers and other purposes is great. However, if the experimental data include many datapoints (>200000) a line-2d-graph ends up in a very big pdf-file. Especially when many pages need to be used.
    Explanation:
    When I use lines to show experimental data in 2d-plots the size of my PDF-file is directly influenced by the number of datapoints used. The more datapoints are used to draw lines within the graph, the bigger the exported PDF-files of the report are.
    It would be great to limit the number of points used to draw a line as it can be done with markers without using the curve transformation option. - Hence, e.g. plotting a line with the help of 200 datapoints is usually as good as showing the same line based on 200000 datapoints but the pdf-size is significantly reduced. You can imagine that when this would be done via the transformation option a long lasting script would be needed for each line to reduce the number of datapoints shown. Hence, the plotting within the report and the actualisation of data would need very long.
     

    Since a while DIAdem optimizes the size of exported PDF-files in a related way as it is suggested here. In principle the PDF-file is exported in a very high resolution, so you can display it in a reader with a very high zoom value (e. g. 6000 %) to look into details of your data. If you have a huge dataset, this could lead in fact to a bigger file size, if data points could be displayed because the high PDF-resolution. But in general, DIAdem only saves information in a PDF-file which is really necessary - but with a high resolution.

  • SmartForms - draw line in template

    Hi!
      I am new to SF, so have a question on drawing line in a template. I use template as the data is only printed out once and is static. I have many columns in my template and I would like to draw lines on the columns so that it is tidy & looks nicer.
      I double click the template & in the "output options" tab, I checked the check box "line with..", but error prompt out to stop me, saying "Boxes/Shadings are not allowed within a table".
      Does anyone know how can I draw lines in a template?
      Kindly advise.
    best regards,
    Ginnie

    Hi,
             Click on the template under the template tab, and then click on the select pattern just under the template heading , there you use lines.
    regards,
    Santosh Thorat
    Edited by: santosh thorat on Dec 26, 2007 10:09 AM

Maybe you are looking for