private void Register_Click(object sender, RoutedEventArgs e)
 {
     if (this.pass1.Password == this.pass2.Password)
     {
         Member newMember = new Member();
         newMember.username = username.Text;
         newMember.name     = this.name.Text;
         newMember.pass     = this.pass1.Password;
         newMember.status   = this.status.Text;
         PLayer newLayer = new PLayer();
         int    count    = newLayer.RegisterNew(newMember);
         if (count > 0)
         {
             this.Error.Content  = "Member Registered!";
             this.username.Text  = "";
             this.name.Text      = "";
             this.pass1.Password = "";
             this.pass2.Password = "";
             this.status.Text    = "";
         }
         else
         {
             this.Error.Content  = "Member Couldn't Registered!";
             this.username.Text  = "";
             this.name.Text      = "";
             this.pass1.Password = "";
             this.pass2.Password = "";
             this.status.Text    = "";
         }
     }
     else
     {
         this.Error.Content = "Password Mismatch!";
     }
 }
Beispiel #2
0
        private void ServiceReport_Selected(object sender, RoutedEventArgs e)
        {
            PLayer         newLayer = new PLayer();
            List <Service> ls       = newLayer.fetchAllServices();

            this.gmyls.ItemsSource = ls;
        }
        /// <summary>
        /// Determines if the specified node is selectable (i.e., if it is a child
        /// of a node in the list of selectable parents).
        /// </summary>
        /// <param name="node">The node to test.</param>
        /// <returns>True if the node is selectable; otherwise, false.</returns>
        protected virtual bool IsSelectable(PNode node)
        {
            bool selectable = false;

            foreach (PNode parent in selectableParents)
            {
                if (parent.ChildrenReference.Contains(node))
                {
                    selectable = true;
                    break;
                }
                else if (parent is PCamera)
                {
                    PCamera cameraParent = (PCamera)parent;
                    for (int i = 0; i < cameraParent.LayerCount; i++)
                    {
                        PLayer layer = cameraParent.GetLayer(i);
                        if (layer.ChildrenReference.Contains(node))
                        {
                            selectable = true;
                            break;
                        }
                    }
                }
            }

            return(selectable);
        }
        private void DeleteItem_Click(object sender, RoutedEventArgs e)
        {
            PLayer newLayer = new PLayer();
            int    count    = newLayer.DeleteItem(this.did.Text);

            if (count > 0)
            {
                dStatus.Content           = "Item Deleted";
                this.did.Text             = "";
                this.dprice.Text          = "";
                this.dcatagory.Text       = "";
                this.dsize.Text           = "";
                this.dcolor.Text          = "";
                this.dbrand.Text          = "";
                this.ddpDate.SelectedDate = DateTime.Today;
            }
            else
            {
                dStatus.Content           = "No Item Deleted...";
                this.did.Text             = "";
                this.dprice.Text          = "";
                this.dcatagory.Text       = "";
                this.dsize.Text           = "";
                this.dcolor.Text          = "";
                this.dbrand.Text          = "";
                this.ddpDate.SelectedDate = DateTime.Today;
            }
        }
        //! Заполняет граф диалога нужными узлами
        void fillDialogGraphView(CDialog root)
        {
            // Initialize, and create a layer for the edges (always underneath the nodes)
            this.DialogShower.Layer.RemoveAllChildren();
            nodeLayer = new PNodeList();
            edgeLayer = new PLayer();

            this.DialogShower.Root.AddChild(edgeLayer);
            this.DialogShower.Camera.AddLayer(0, edgeLayer);

            // Show root node
            float rootx    = (float)(this.ClientSize.Width / 5);
            float rooty    = (float)(this.ClientSize.Height / 5);
            SizeF size     = CalcEllipsisSizeForNode(root.DialogID);
            PNode rootNode = PPath.CreateEllipse(rootx, rooty, size.Width, size.Height);

            rootNode.Brush = Brushes.Green;

            PText rootText = new PText(root.DialogID.ToString());

            rootText.Pickable = false;
            rootText.X        = rootNode.X + 15;
            rootText.Y        = rootNode.Y + 10;
            rootNode.Tag      = new ArrayList();

            //          ((ArrayList)rootNode.Tag).Add(root.DialogID);
            rootNode.AddChild(rootText);
            nodeLayer.Add(rootNode);
            if (!graphs.Keys.Contains(rootNode))
            {
                graphs.Add(rootNode, new GraphProperties(root.DialogID));
            }
            this.fillDialogSubgraphView(root, rootNode, 1, ref edgeLayer, ref nodeLayer, false);//, rootNode, edgeLayer);
            this.DialogShower.Layer.AddChildren(nodeLayer);
        }
Beispiel #6
0
        public Timeline(int width, int height)
        {
            InitializeComponent();
            DefaultRenderQuality = RenderQuality.LowQuality;
            this.Size            = new Size(width, height);

            TimeLineView = this.Layer;
            Camera.AddLayer(TimeLineView);
            TimeLineView.MoveToBack();
            TimeLineView.Pickable = false;
            TimeLineView.Brush    = new SolidBrush(Color.FromArgb(92, 92, 92));
            //BackColor = Color.FromArgb(60, 60, 60);

            GroupList        = new InterpData();
            GroupList.Bounds = new RectangleF(0, 0, ListWidth, Camera.Bounds.Bottom - InfoHeight);
            GroupList.Brush  = new SolidBrush(Color.FromArgb(60, 60, 60));
            Root.AddChild(GroupList);
            this.Camera.AddChild(GroupList);

            TimeLineInfo        = new PNode();
            TimeLineInfo.Bounds = new RectangleF(0, Camera.Bounds.Bottom - InfoHeight, ListWidth, InfoHeight);
            TimeLineInfo.Brush  = Brushes.Black;
            Root.AddChild(TimeLineInfo);
            this.Camera.AddChild(TimeLineInfo);

            RemoveInputEventListener(PanEventHandler);
            RemoveInputEventListener(ZoomEventHandler);
            setupDone = true;
        }
        public override void Initialize()
        {
            PRoot              root      = Canvas.Root;
            PLayer             layer     = Canvas.Layer;
            PActivityScheduler scheduler = root.ActivityScheduler;

            PNode singlePulse = new PNode();

            singlePulse.Brush = new SolidBrush(Color.White);
            singlePulse.SetBounds(0, 0, 60, 60);
            PNode repeatPulse = new PNode();

            repeatPulse.Brush = new SolidBrush(Color.White);
            repeatPulse.SetBounds(60, 60, 60, 60);;
            PNode repeatReversePulse = new PNode();

            repeatReversePulse.Brush = new SolidBrush(Color.White);
            repeatReversePulse.SetBounds(120, 120, 60, 60);

            layer.AddChild(singlePulse);
            layer.AddChild(repeatPulse);
            layer.AddChild(repeatReversePulse);

            PColorActivity singlePulseActivity        = new PColorActivity(1000, 0, 1, ActivityMode.SourceToDestination, new PulseTarget(singlePulse), Color.Orange);
            PColorActivity repeatPulseActivity        = new PColorActivity(1000, 0, 5, ActivityMode.SourceToDestination, new PulseTarget(repeatPulse), Color.Blue);
            PColorActivity repeatReversePulseActivity = new PColorActivity(500, 0, 10, ActivityMode.SourceToDestination, new PulseTarget(repeatReversePulse), Color.Green);

            scheduler.AddActivity(singlePulseActivity);
            scheduler.AddActivity(repeatPulseActivity);
            scheduler.AddActivity(repeatReversePulseActivity);

            base.Initialize();
        }
Beispiel #8
0
        public Sector(PLayer layer, String name)
        {
            Random rnd      = new Random((int)DateTime.Now.Ticks); // seeded with ticks
            Color  penColor = Color.FromArgb((rnd.Next(0, 255)), (rnd.Next(0, 255)), (rnd.Next(0, 255)));

            Pen sigPen = new Pen(penColor, 2.0F);

            sigPen.DashStyle = DashStyle.DashDotDot;

            PPath sigCircle = PPath.CreateEllipse(100, 500, 100, 100);

            sigCircle.Pen   = sigPen;
            sigCircle.Brush = Brushes.Transparent;

            PText pname = new PText(name);

            pname.TextBrush     = Brushes.White;
            pname.TextAlignment = StringAlignment.Center;
            pname.X             = sigCircle.X;
            pname.Y             = sigCircle.Y;

            //Display Object by adding them to its layer
            layer.AddChild(pname);
            layer.AddChild(sigCircle);
        }
Beispiel #9
0
 private void UpdateService_Click(object sender, RoutedEventArgs e)
 {
     if (this.price.Text == "" || this.id.Text == "" || this.name.Text == "" || this.charges.Text == "" || this.phone.Text == "")
     {
         Status.Content = "Some Fields are Missing!";
     }
     else
     {
         Service newService = new Service();
         newService.id             = this.id.Text;
         newService.price          = Int32.Parse(this.price.Text);
         newService.catagory       = this.catagory.Text;
         newService.size           = Int32.Parse(this.size.Text);
         newService.color          = this.color.Text;
         newService.brand          = this.brand.Text;
         newService.purchaseDate   = this.dpDate.SelectedDate.Value.Date;
         newService.serviceDate    = this.ServiceDate.SelectedDate.Value.Date;
         newService.returnDate     = this.ReturnDate.SelectedDate.Value.Date;
         newService.serviceCharges = Int32.Parse(this.charges.Text);
         newService.customerName   = this.name.Text;
         newService.address        = this.address.Text;
         newService.phone          = this.phone.Text;
         PLayer newLayer = new PLayer();
         int    count    = newLayer.UpdateService(newService);
         if (count > 0)
         {
             Status.Content                = "Service Updated...";
             this.id.Text                  = "";
             this.price.Text               = "";
             this.catagory.Text            = "";
             this.size.Text                = "";
             this.color.Text               = "";
             this.brand.Text               = "";
             this.dpDate.SelectedDate      = DateTime.Today;
             this.name.Text                = "";
             this.phone.Text               = "";
             this.charges.Text             = "";
             this.address.Text             = "";
             this.ServiceDate.SelectedDate = DateTime.Today;
             this.ReturnDate.SelectedDate  = DateTime.Today.AddDays(15);
         }
         else
         {
             Status.Content                = "An Error Occurred...";
             this.id.Text                  = "";
             this.price.Text               = "";
             this.catagory.Text            = "";
             this.size.Text                = "";
             this.color.Text               = "";
             this.brand.Text               = "";
             this.dpDate.SelectedDate      = DateTime.Today;
             this.name.Text                = "";
             this.phone.Text               = "";
             this.charges.Text             = "";
             this.address.Text             = "";
             this.ServiceDate.SelectedDate = DateTime.Today;
             this.ReturnDate.SelectedDate  = DateTime.Today.AddDays(15);
         }
     }
 }
        public override void Initialize()
        {
            PLayer layer        = Canvas.Layer;
            PNode  animatedNode = PPath.CreateRectangle(0, 0, 100, 80);

            layer.AddChild(animatedNode);

            // create node to display animation path
            PPath ppath = new PPath();

            // create animation path
            ppath.AddLine(0, 0, 300, 300);
            ppath.AddLine(300, 300, 300, 0);
            ppath.AddArc(0, 0, 300, 300, -90, 90);
            ppath.CloseFigure();

            // add the path to the scene graph
            layer.AddChild(ppath);

            PPositionPathActivity positionPathActivity = new PPositionPathActivity(5000, 0, new PositionPathTarget(animatedNode));

            positionPathActivity.PositionPath = (XnaGraphicsPath)ppath.PathReference.Clone();
            positionPathActivity.LoopCount    = int.MaxValue;

            // add the activity
            animatedNode.AddActivity(positionPathActivity);
        }
        private void login_Click(object sender, RoutedEventArgs e)
        {
            if (this.id.Text != "")
            {
                String username = this.id.Text;
                String userPass = this.pass.Password;

                PLayer verify     = new PLayer();
                Member userObject = verify.VerifyUser(username, userPass);
                if (userObject == null)
                {
                    this.ErrorMessage.Content = "INCORRECT Username or Password!";
                    ErrorMessage.Visibility   = Visibility.Visible;
                }
                else if (userObject.status == "admin")
                {
                    admin adminMember = new admin(userObject);
                    adminMember.Show();
                    this.Close();
                }
                else if (userObject.status == "staff")
                {
                    Staff StaffMember = new Staff(userObject);
                    StaffMember.Show();
                    this.Close();
                }
            }
            else
            {
                this.ErrorMessage.Content = "Enter Your ID and Password...";
                ErrorMessage.Visibility   = Visibility.Visible;
            }
        }
Beispiel #12
0
        private void SalesReport_Click(object sender, RoutedEventArgs e)
        {
            PLayer      newLayer = new PLayer();
            List <Sale> ls       = newLayer.fetchAllSales();

            this.myls.ItemsSource = ls;
        }
Beispiel #13
0
        private void Search_Click(object sender, RoutedEventArgs e)
        {
            PLayer newLayer = new PLayer();
            Sale   toUpdate = newLayer.fetchSale(this.uid.Text);

            if (toUpdate != null)
            {
                uStatus.Content           = "";
                this.uid.Text             = toUpdate.id;
                this.uprice.Text          = toUpdate.price.ToString();
                this.ucatagory.Text       = toUpdate.catagory;
                this.usize.Text           = toUpdate.size.ToString();
                this.ucolor.Text          = toUpdate.color;
                this.ubrand.Text          = toUpdate.brand;
                this.udpDate.SelectedDate = toUpdate.purchaseDate;
            }
            else
            {
                uStatus.Content           = "INCORRECT ID";
                this.uid.Text             = "";
                this.uprice.Text          = "";
                this.ucatagory.Text       = "";
                this.usize.Text           = "";
                this.ucolor.Text          = "";
                this.ubrand.Text          = "";
                this.udpDate.SelectedDate = DateTime.Today;
                this.reciept.Text         = "";
                this.uname.Text           = "";
                this.uphone.Text          = "";
                this.uaddress.Text        = "";
                this.ucharges.Text        = "";
            }
        }
Beispiel #14
0
        public override void Initialize()
        {
            PRoot  root  = Canvas.Root;
            PLayer layer = Canvas.Layer;

            PNode n      = PPath.CreateRectangle(0, 0, 100, 80);
            PNode sticky = PPath.CreateRectangle(0, 0, 50, 50);

            PBoundsHandle.AddBoundsHandlesTo(n);
            sticky.Brush = Color.Yellow;
            PBoundsHandle.AddBoundsHandlesTo(sticky);

            layer.AddChild(n);
            Canvas.Camera.AddChild(sticky);

            PCamera otherCamera = new PCamera();

            otherCamera.AddLayer(layer);
            root.AddChild(otherCamera);

            PCanvas other = new PCanvas();

            other.Camera = otherCamera;
            PForm result = new PForm(false, other);

            result.StartPosition = FormStartPosition.Manual;
            result.Location      = new System.Drawing.Point(this.Location.X + this.Width, this.Location.Y);
            result.Size          = this.Size;
            result.Show();
        }
        private void TabItem_Selected(object sender, RoutedEventArgs e)
        {
            PLayer      newLayer = new PLayer();
            List <Item> ls       = newLayer.fetchAllItems();

            this.myls.ItemsSource = ls;
        }
Beispiel #16
0
        public static PLayer ToPLayer(this PLayerDTO pLayerDTO)
        {
            PLayer pLayer = new PLayer();

            pLayer.MyProperty1 = pLayerDTO.MyProperty1;
            pLayer.MyProperty2 = pLayerDTO.MyProperty2;
            return(pLayer);
        }
        public Starbase(PLayer layer, String name, float x, float y, float sigRadius, float rrRadius)
        {
            float sigDia = (sigRadius * 2) / 100;
            float rrDia  = (rrRadius * 2) / 100;

            string dataDirectory = "Images";
            string filePath      = Path.Combine("..", "..");

            if (File.Exists(Path.Combine(dataDirectory, "stations.gif")))
            {
                filePath = "";
            }

            Image  image        = Image.FromFile(Path.Combine(filePath, Path.Combine(dataDirectory, "stations.gif")));
            PImage stationImage = new PImage(image);

            stationImage.X = (x - (image.Width / 2)) / 100;
            stationImage.Y = (y - (image.Height / 2)) / 100;

            float sigX = (x / 100) - ((sigDia / 2) - (image.Width / 2));
            float sigY = (y / 100) - ((sigDia / 2) - (image.Height / 2));
            float rrX  = (x / 100) - ((rrDia / 2) - (image.Width / 2));
            float rrY  = (y / 100) - ((rrDia / 2) - (image.Height / 2));

            Pen sigPen = new Pen(Color.Yellow, 2.0F);

            sigPen.DashStyle = DashStyle.DashDotDot;
            Pen rrPen = new Pen(Color.LightGoldenrodYellow, 1.0F);

            PPath sigCircle = PPath.CreateEllipse(sigX, sigY, sigDia, sigDia);

            sigCircle.Pen = sigPen;
            PPath rrCircle = PPath.CreateEllipse(rrX, rrY, rrDia, rrDia);

            rrCircle.Pen = rrPen;

            PNode sigNode = sigCircle;

            sigNode.Brush = Brushes.Transparent;

            PNode rrNode = rrCircle;

            rrNode.Brush = Brushes.Transparent;

            PText pname = new PText(name);

            pname.TextBrush     = Brushes.White;
            pname.TextAlignment = StringAlignment.Center;
            pname.X             = (x / 100) - (pname.Width / 2);
            pname.Y             = (y / 100) - 20;

            stationImage.AddChild(sigNode);
            stationImage.AddChild(rrNode);
            stationImage.AddChild(pname);

            //Display Object by adding them to its layer
            layer.AddChild(stationImage);
        }
Beispiel #18
0
        private void SearchServices_Click(object sender, RoutedEventArgs e)
        {
            DateTime       lowerDate = this.gPick1.SelectedDate.Value.Date;
            DateTime       upperDate = this.gPick2.SelectedDate.Value.Date;
            PLayer         newLayer  = new PLayer();
            List <Service> ls        = newLayer.fetchAllServices(lowerDate, upperDate);

            this.gmyls.ItemsSource = ls;
        }
        private void StockReport_Click(object sender, RoutedEventArgs e)
        {
            DateTime    lowerDate = this.Pick1.SelectedDate.Value.Date;
            DateTime    upperDate = this.Pick2.SelectedDate.Value.Date;
            PLayer      newLayer  = new PLayer();
            List <Item> ls        = newLayer.fetchAllItems(lowerDate, upperDate);

            this.myls.ItemsSource = ls;
        }
        public GraphEditor(int width, int height)
        {
            // This call is required by the Windows.Forms Form Designer.
            InitializeComponent();

            this.Size = new Size(width, height);
            int numNodes = 50;
            int numEdges = 50;

            // Initialize, and create a layer for the edges (always underneath the nodes)
            PLayer nodeLayer = this.Layer;
            PLayer edgeLayer = new PLayer();

            Root.AddChild(edgeLayer);
            this.Camera.AddLayer(0, edgeLayer);
            Random rnd = new Random();

            // Create some random nodes
            // Each node's Tag has an ArrayList used to store associated edges
            for (int i = 0; i < numNodes; i++)
            {
                float x    = (float)(this.ClientSize.Width * rnd.NextDouble());
                float y    = (float)(this.ClientSize.Height * rnd.NextDouble());
                PPath path = PPath.CreateEllipse(x, y, 20, 20);
                path.Tag = new ArrayList();
                nodeLayer.AddChild(path);
            }

            // Create some random edges
            // Each edge's Tag has an ArrayList used to store associated nodes
            for (int i = 0; i < numEdges; i++)
            {
                int n1 = rnd.Next(numNodes);
                int n2 = n1;
                while (n2 == n1)
                {
                    n2 = rnd.Next(numNodes);                      // Make sure we have two distinct nodes.
                }

                PNode node1 = nodeLayer[n1];
                PNode node2 = nodeLayer[n2];
                PPath edge  = new PPath();
                ((ArrayList)node1.Tag).Add(edge);
                ((ArrayList)node2.Tag).Add(edge);
                edge.Tag = new ArrayList();
                ((ArrayList)edge.Tag).Add(node1);
                ((ArrayList)edge.Tag).Add(node2);
                edgeLayer.AddChild(edge);
                UpdateEdge(edge);
            }

            // Create event handler to move nodes and update edges
            nodeLayer.AddInputEventListener(new NodeDragHandler());
        }
Beispiel #21
0
        public GraphEditor()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            SolidLayer = FCanvas.Layer;
            LinkLayer  = new PLayer();
            FCanvas.Root.AddChild(LinkLayer);

            //add linklayer below nodelayer
            FCanvas.Camera.AddLayer(LinkLayer);
            FCanvas.Camera.AddLayer(SolidLayer);

            //set default roots
            LinkRoot = CreateDot(null);
            Root     = CreateDot(null);

            //set render quality
            FCanvas.HighRenderQuality +=
                delegate(Graphics graphics)
            {
                //improves text render quality when antialiased and speeds up drawing
                graphics.CompositingQuality = CompositingQuality.HighSpeed;
            };
            FCanvas.AnimatingRenderQuality   = RenderQuality.HighQuality;
            FCanvas.InteractingRenderQuality = RenderQuality.HighQuality;
            FCanvas.DefaultRenderQuality     = RenderQuality.HighQuality;

            //remove default zoom and pan event handlers
            FCanvas.RemoveInputEventListener(FCanvas.ZoomEventHandler);
            FCanvas.RemoveInputEventListener(FCanvas.PanEventHandler);

            //create custom event handlers
            FDragDropEventHandler   = new DragDropEventHandler();
            FMyPanEventHandler      = new PanEventHandler();
            FMyZoomEventHandler     = new ZoomEventHandler();
            FPathEventHandler       = new PathEventHandler(this);
            FEventPassThrougHandler = new EventPassThrougHandler(this);

            //add custom event handlers
            FCanvas.AddInputEventListener(FDragDropEventHandler);
            FCanvas.AddInputEventListener(FMyPanEventHandler);
            FCanvas.AddInputEventListener(FMyZoomEventHandler);
            FCanvas.AddInputEventListener(FPathEventHandler);
            FCanvas.AddInputEventListener(FEventPassThrougHandler);

            FCanvas.KeyPress += FCanvas_KeyPress;
            FCanvas.KeyDown  += FCanvas_KeyDown;
            FCanvas.KeyUp    += FCanvas_KeyUp;

            FCanvas.MinimumSize = new Size(10, 10);
        }
Beispiel #22
0
        public WidthAxis(PVCFrame aFrame, PLayer aLayer)
        {
            layer  = aLayer;
            frame  = aFrame;
            camera = layer.GetCamera(0);
            camera.ViewTransformChanged += CameraVisibleChanged;
            frame.DimensionChanged      += FrameDimensionChanged;
            frame.ChildrenChanged       += FrameChildrenChanged;

            SetBounds(DefaultX, DefaultY, DefaultWidth, DefaultHeight);
        }
Beispiel #23
0
        /// <summary>
        /// Overridden.  Creats a scene graph with a <see cref="PCacheCamera">PCacheCamera</see>
        /// as the main camera.
        /// </summary>
        protected override PCamera CreateBasicScenegraph()
        {
            PRoot   r = new PRoot();
            PLayer  l = new PLayer();
            PCamera c = new PCacheCamera();

            r.AddChild(c);
            r.AddChild(l);
            c.AddLayer(l);

            return(c);
        }
        /// <summary>
        /// Creates a basic scene graph.
        /// </summary>
        /// <returns>The main camera node in the new scene graph.</returns>
        /// <remarks>
        /// The scene graph will consist of  root node with two children, a layer and a
        /// camera.  Additionally, The camera will be set to view the layer.  Typically,
        /// you will want to add new nodes to the layer.
        /// </remarks>
        public static PCamera CreateBasicScenegraph()
        {
            PRoot   r = new PRoot();
            PLayer  l = new PLayer();
            PCamera c = new PCamera();

            r.AddChild(c);
            r.AddChild(l);
            c.AddLayer(l);

            return(c);
        }
        public override void Initialize()
        {
            int numNodes = 50;
            int numEdges = 50;

            // Initialize, and create a layer for the edges (always underneath the nodes)
            PLayer nodeLayer = Canvas.Layer;
            PLayer edgeLayer = new PLayer();

            Canvas.Root.AddChild(edgeLayer);
            Canvas.Camera.AddLayer(0, edgeLayer);
            Random rnd = new Random();

            // Create some random nodes
            // Each node's Tag has an ArrayList used to store associated edges
            for (int i = 0; i < numNodes; i++)
            {
                float  x    = (float)(ClientSize.Width * rnd.NextDouble());
                float  y    = (float)(ClientSize.Height * rnd.NextDouble());
                P3Path node = P3Path.CreateEllipse(x, y, 20, 20);

                node.Tag = new ArrayList();
                nodeLayer.AddChild(node);
            }

            // Create some random edges
            // Each edge's Tag has an ArrayList used to store associated nodes
            for (int i = 0; i < numEdges; i++)
            {
                int n1 = rnd.Next(numNodes);
                int n2 = n1;
                while (n2 == n1)
                {
                    n2 = rnd.Next(numNodes);                      // Make sure we have two distinct nodes.
                }

                PNode  node1 = nodeLayer[n1];
                PNode  node2 = nodeLayer[n2];
                P3Path edge  = P3Path.CreateLine((node1.Bounds.Left + node1.Bounds.Right) / 2, (node1.Bounds.Top + node1.Bounds.Bottom) / 2,
                                                 (node2.Bounds.Left + node2.Bounds.Right) / 2, (node2.Bounds.Top + node2.Bounds.Bottom) / 2);

                ((ArrayList)node1.Tag).Add(edge);
                ((ArrayList)node2.Tag).Add(edge);
                edge.Tag = new ArrayList();
                ((ArrayList)edge.Tag).Add(node1);
                ((ArrayList)edge.Tag).Add(node2);

                edgeLayer.AddChild(edge);
            }

            // Create event handler to move nodes and update edges
            nodeLayer.AddInputEventListener(new NodeDragHandler());
        }
        public override void Initialize()
        {
            PRoot   root          = Canvas.Root;
            PCamera camera        = Canvas.Camera;
            PLayer  mainLayer     = Canvas.Layer;               // viewed by the PCanvas camera, the lens is added to this layer.
            PLayer  sharedLayer   = new PLayer();               // viewed by both the lens camera and the PCanvas camera
            PLayer  lensOnlyLayer = new PLayer();               // viewed by only the lens camera

            root.AddChild(lensOnlyLayer);
            root.AddChild(sharedLayer);
            camera.AddLayer(0, sharedLayer);

            PLens lens = new PLens();

            lens.SetBounds(10, 10, 80, 110);
            lens.AddLayer(0, lensOnlyLayer);
            lens.AddLayer(1, sharedLayer);
            mainLayer.AddChild(lens);
            PBoundsHandle.AddBoundsHandlesTo(lens);

            // Create an event handler that draws squiggles on the first layer of the bottom
            // most camera.
            PDragSequenceEventHandler squiggleEventHandler = new SquiggleEventHandler();

            // add the squiggle event handler to both the lens and the
            // canvas camera.
            lens.Camera.AddInputEventListener(squiggleEventHandler);
            camera.AddInputEventListener(squiggleEventHandler);

            // remove default event handlers, not really nessessary since the squiggleEventHandler
            // consumes everything anyway, but still good to do.
            //Canvas.RemoveInputEventListener(Canvas.PanEventHandler);
            Canvas.RemoveInputEventListener(Canvas.ZoomEventHandler);

            PNode sharedNode = new SharedNode(lens);

            sharedNode.Brush = new SolidBrush(Color.Green);             // Brushes.Green;
            sharedNode.SetBounds(0, 0, 100, 200);
            sharedNode.TranslateBy(100, 220);
            sharedLayer.AddChild(sharedNode);

            PText label = new PText("Move the lens \n (by dragging title bar) over the green rectangle, and it will appear red. press and drag the mouse on the canvas and it will draw squiggles. press and drag the mouse over the lens and drag squiggles that are only visible through the lens.");

            label.Font = new Font("Arial", 10, FontStyle.Regular);
            label.ConstrainWidthToTextWidth = false;
            label.SetBounds(100, 70, 130, 200);

            sharedLayer.AddChild(label);

            base.Initialize();
        }
Beispiel #27
0
        public override void Initialize()
        {
            PCanvas c   = Canvas;
            PLayer  l   = c.Layer;
            PCamera cam = c.Camera;

            cam.ScaleViewBy(2.0f);
            PPath path = PPath.CreateRectangle(0, 0, 100, 100);

            l.AddChild(path);
            path.TranslateBy(100, 10);
            path.ScaleBy(0.2f);
            cam.AnimateViewToCenterBounds(path.GlobalFullBounds, true, 1000);
        }
Beispiel #28
0
 public GraphEditor(int width, int height)
 {
     InitializeComponent();
     this.Size = new Size(width, height);
     nodeLayer = this.Layer;
     edgeLayer = new PLayer();
     Root.AddChild(edgeLayer);
     this.Camera.AddLayer(0, edgeLayer);
     backLayer = new PLayer();
     Root.AddChild(backLayer);
     backLayer.MoveToBack();
     this.Camera.AddLayer(1, backLayer);
     nodeLayer.AddInputEventListener(new NodeDragHandler());
 }
        // So far we have just been using PNode, but of course PNode has many
        // subclasses that you can try out to.
        public void CreateNodeUsingExistingClasses()
        {
            PLayer layer = Canvas.Layer;

            layer.AddChild(PPath.CreateEllipse(0, 0, 100, 100));
            layer.AddChild(PPath.CreateRectangle(0, 100, 100, 100));
            layer.AddChild(new PText("Hello World"));

            // Here we create an image node that displays a thumbnail
            // image of the root node. Note that you can easily get a thumbnail
            // of any node by using PNode.ToImage().
            PImage image = new PImage(layer.ToImage(300, 300, Color.Transparent));

            layer.AddChild(image);
        }
        public override void Initialize()
        {
            PLayer layer = Canvas.Layer;

            PNode a = PPath.CreateRectangle(0, 0, 100, 80);
            PNode b = PPath.CreateRectangle(0, 0, 100, 80);

            layer.AddChild(a);
            layer.AddChild(b);

            PActivity a1 = a.AnimateToPositionScaleRotation(200, 200, 1, 0, 5000);
            PActivity a2 = b.AnimateToPositionScaleRotation(200, 200, 1, 0, 5000);

            a2.StartAfter(a1);
        }