コード例 #1
0
 private void optCloseVisit()
 {
     if (!empty)
     {
         sendVisitEvent(VisitEvent.visitEnd);
         callbackTray = null;
     }
 }
コード例 #2
0
        public DustProcVisitProcess(DustSession session, DustInfoTray tray)
        {
            this.session        = session;
            this.infoTray       = tray;
            this.visitTray      = tray as DustVisitTray;
            callbackTray        = (null == visitTray) ? new DustVisitTray(tray, null) : new DustVisitTray(visitTray);
            callbackTray.entity = session.resolveEntity(tray.entity);

            empty = true;

            dip = tray.value as DustInfoProcessor;
//			dif = tray.value as DustInfoFilter;
            dvp = tray.value as DustVisitor;
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: MondoAurora/Montru2019
        public static void Main(string[] args)
        {
            DustSystem.initKernel(args);

            var module   = "GeoTest02";
            var entityId = "23";

            Console.WriteLine("Connecting to server...");

            Task <DustEntity> t = DustCommConnectorHttp.loadRemote("localhost", module, entityId);

            t.Wait();
            DustEntity e = t.Result;

            DustEntity e1 = DustSystem.getSystem().getEntity(module, "16");

            var draw = new DrawVisitor();
            var vt   = new DustVisitTray(e, draw);

//			vt.cmd = VisitCommand.visitAtts | VisitCommand.recEntityOnce;
            vt.cmd = VisitCommand.visitAllData | VisitCommand.recPathOnce;
//			vt.cmd = VisitCommand.visitRefs | VisitCommand.recEntityOnce;
//			Console.WriteLine("heh? {0}", vt.cmd);
            Dust.Dust.access(DustAccessCommand.visit, vt);

            ShapeSource s = draw.getLastObject <ShapeSource>();

            var a  = Assembly.LoadFrom("bin\\csharp\\DustGui.dll");
            var tt = a.GetType("Dust.Gui.MyClass");
            var mc = Activator.CreateInstance(tt);

            var m = tt.GetMethod("testFunction");

            m.Invoke(mc, null);

            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: MondoAurora/Montru2019
        public void processVisitEvent(VisitEvent visitEvent, DustVisitTray tray)
        {
            int    kfi = kf.indexOf((DustEntity)tray.key);
            object kfk = kf.keyOf(kfi);

//			Console.WriteLine("DrawVisitor processVisitEvent {0} - {1}", visitEvent, tray.value);
//			return;

            switch (visitEvent)
            {
            case VisitEvent.entityStartOpt:
                DustEntity pt = DustUtils.getValue(tray.entity, (DustEntity)null, DataLinks.EntityPrimaryType);
                if (OB_TYPES.ContainsKey(pt))
                {
                    tray.readerObject = Activator.CreateInstance(OB_TYPES[pt]);
                    var geo = tray.readerObject as GeometricData;
                    if (null != geo)
                    {
                        readingGeoData = geo;
                    }
                }
                break;

            case VisitEvent.keyStartOpt:
                if (-1 == kfi)
                {
                    tray.resp = VisitResponse.skip;
                }
                else
                {
                    if (COORDS.Contains(kfk))
                    {
                        readingCoord = (GeometryValues)kfk;
                    }
                    else if (ROLES.Contains(kfk))
                    {
                        readingRole = (GeometryValues)kfk;
                    }

                    Console.WriteLine("Entering {0} ", kf.keyOf(kfi));
                }
                break;

            case VisitEvent.keyEnd:
                if (CollectionLinks.SequenceMembers == kfk)
                {
                    var sp = tray.readerParent as ShapePath;
                    if (null != sp)
                    {
                        sp.Add((GeometricData)tray.readerObject);
                    }

                    var sc = tray.readerParent as ShapeComposite;
                    if (null != sc)
                    {
                        sc.Add((GeometricInclusion)tray.readerObject);
                    }
                }
                else if (GeometryLinks.GeometricInclusionTarget == kfk)
                {
                    var gi = tray.readerParent as GeometricInclusion;
                    if (null != gi)
                    {
                        gi.target = (ShapeSource)tray.readerObject;
                    }
                }
                else if (GeometryLinks.GeometricInclusionParameters == kfk)
                {
                    var gi = tray.readerParent as GeometricInclusion;

                    if ((null != gi) && (readingRole != null))
                    {
                        gi[readingRole] = (GeometricData)tray.readerObject;
                    }
                }

                Console.WriteLine("Leaving {0} ", kf.keyOf(kfi));
                break;

            case VisitEvent.entityEnd:
                if (null != tray.readerObject)
                {
                    lastReadObject = tray.readerObject;
                }
                break;
            }
        }
コード例 #5
0
 public VisitContext(DustVisitTray tray)
 {
     this.tray = tray;
 }