Example #1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="factory">Factory of position objects</param>
 public VisibleFactory(IPositionObjectFactory factory)
 {
     DeleteTextures();
     this.factory = factory;
     PositionObjectFactory.Factory = factory;
     PureDesktop.DesktopPostLoad  += (Diagram.UI.Interfaces.IDesktop d) => { DeleteTextures(); };
 }
Example #2
0
        /// <summary>
        /// Creates application form
        /// </summary>
        /// <param name="coordinator">Database coordinator</param>
        /// <param name="holder">byte holder for editor of proprerties</param>
        /// <param name="ordSolver">Ordinary differential equations solver</param>
        /// <param name="diffProcessor">Ordinary differential equations processor</param>
        /// <param name="initializers">Array of initializers</param>
        /// <param name="factories">UI Factotries</param>
        /// <param name="throwsRepeatException">The "throw exception for repeat" sign</param>
        /// <param name="buttons">Palette buttons</param>
        /// <param name="icon">Form icon</param>
        /// <param name="positionFactory">Position factory</param>
        /// <param name="filename">File name</param>
        /// <param name="resources">Localization resourses</param>
        /// <param name="text">Caption text</param>
        /// <param name="ext">File extesion</param>
        /// <returns>The Application form</returns>
        public static BasicEngineering.UI.Factory.Advanced.Forms.FormMain CreateForm(IDatabaseCoordinator coordinator, ByteHolder holder,
                                                                                     OrdinaryDifferentialEquations.IDifferentialEquationSolver ordSolver,
                                                                                     DataPerformer.Portable.DifferentialEquationProcessors.DifferentialEquationProcessor diffProcessor,
                                                                                     IApplicationInitializer[] initializers,
                                                                                     IUIFactory[] factories,
                                                                                     bool throwsRepeatException, LightDictionary <string, ButtonWrapper[]> buttons,
                                                                                     Icon icon,
                                                                                     IPositionObjectFactory positionFactory,
                                                                                     string filename,
                                                                                     Dictionary <string, object>[] resources,
                                                                                     string text,
                                                                                     string ext,
                                                                                     string fileFilter,
                                                                                     TextWriter logWriter, TestCategory.Interfaces.ITestInterface testInterface)
        {
            Motion6D.PositionFactory.Factory = Motion6D.Drawing.Factory.ColoredPositionFactory.Object;
            Motion6D.UI.UserControls.SimpleChooser.Chooser = Motion6D.UI.UserControls.ColoredChooser.Object;
            List <IUIFactory> fact = null;

            if (factories == null)
            {
                fact = new List <IUIFactory>();
            }
            else
            {
                fact = new List <IUIFactory>(factories);
            }
            fact.Add(MotionFactory.Object);
            if (positionFactory != null)
            {
                VisibleFactory vf = new VisibleFactory(positionFactory);
                fact.Add(vf);
            }
            List <IApplicationInitializer> apps = new List <IApplicationInitializer>(initializers);

            apps.Add(Motion6D.ApplicationInitializer.Object);
            apps.Add(Event.Basic.ApplicationInitializer.Singleton);
            FormMain form = DefaultApplicationCreator.CreateForm(coordinator, holder, ordSolver, diffProcessor,
                                                                 Motion6D.Runtime.DataRuntimeFactory.Object,
                                                                 apps.ToArray(),
                                                                 fact.ToArray(),
                                                                 throwsRepeatException,
                                                                 buttons, icon, filename, resources, text, ext, fileFilter, logWriter, testInterface);

            StaticExtensionMotion6D.Animation = form;
            return(form);
        }
Example #3
0
        /// <summary>
        /// Gets visual object buttons
        /// </summary>
        /// <param name="factory">The factory</param>
        /// <returns>Buttons</returns>
        public static ButtonWrapper[] GetVisualObjectButtons(IPositionObjectFactory factory)
        {
            if (factory == null)
            {
                return(new ButtonWrapper[0]);
            }
            ButtonWrapper[] b = new ButtonWrapper[]
            {
                new ButtonWrapper(factory.CameraType,
                                  "", "Camera", ResourceImage.Camera, null, true, false),
                new ButtonWrapper(typeof(Motion6D.SerializablePosition),
                                  "", "3D Object", ResourceImage.Cube, null, true, false),
                new ButtonWrapper(typeof(Motion6D.SerializablePosition),
                                  "Collection", "3D Object Collection", ResourceImage.CubeCollection, null, true, false),
                new ButtonWrapper(typeof(Motion6D.SerializablePosition),
                                  "Deformed figure", "Deformed object", ResourceImage.FormFigure, null, true, false),
                new ButtonWrapper(typeof(Motion6D.SerializablePosition),
                                  "3D Field Consumer", "Consumer of 3D field", ResourceImage.Field3D_Consumer, null, true, false),
                new ButtonWrapper(typeof(Motion6D.SerializablePosition),
                                  "Reper", "Reper", ResourceImage.Reper, null, true, false),
            };
            List <ButtonWrapper> l = new List <ButtonWrapper>();

            foreach (ButtonWrapper bw in b)
            {
                if (factory.SupportsKind(bw.Kind))
                {
                    l.Add(bw);
                }
            }
            FieldInfo fi = factory.GetType().GetField("Buttons");

            if (fi != null)
            {
                l.AddRange(fi.GetValue(fi) as ButtonWrapper[]);
            }
            b = l.ToArray();
            return(b);
        }