Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EdgeUIElement"/> class.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="edge">The edge.</param>
        public EdgeUIElement(IGraphProvider graphProvider, Edge <NodeData, EdgeData> edge)
            : base(graphProvider, edge.Data)
        {
            this.Edge = edge;

            edge.EdgeDirectionChanged += new System.EventHandler <System.EventArgs>((s, e) => this.InvalidateModel());
        }
Exemple #2
0
 public Store(string id, IGraphProvider provider)
 {
     _id       = id;
     _provider = provider;
     _graphs[GraphType.Meta]  = provider.CreateGraph(id, GraphType.Meta);
     _graphs[GraphType.Data]  = provider.CreateGraph(id, GraphType.Data);
     _graphs[GraphType.Infer] = provider.CreateGraph(id, GraphType.Infer);
 }
Exemple #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="IAlgorithmMenuItemViewModel"/> class.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="messageHandler">The <see cref="IMessageHandler"/>.</param>
        /// <param name="parentViewModel">The parent view model.</param>
        /// <param name="algorithm">The <see cref="IGraphAlgorithm"/>.</param>
        public IAlgorithmMenuItemViewModel(IGraphProvider graphProvider, IMessageHandler messageHandler, MenuItemViewModel parentViewModel, IGraphAlgorithm algorithm)
            : base(parentViewModel)
        {
            this.graphProvider  = graphProvider;
            this.messageHandler = messageHandler;

            this.Header  = algorithm.Name;
            this.Command = new RelayCommand(param => this.Execute(algorithm));
        }
Exemple #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="NodeUIElement"/> class.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="node">The node.</param>
        public NodeUIElement(IGraphProvider graphProvider, Node <NodeData, EdgeData> node)
            : base(graphProvider, node.Data)
        {
            this.Node = node;
            this.TranslateTransform = new TranslateTransform3D((Vector3D)node.Data.Position);
            this.Transform          = this.TranslateTransform;

            node.Data.NodeMoved += new System.EventHandler <NodeMovedEventArgs>(this.NodeMoved);
        }
Exemple #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CategoryMenuItemViewModel"/> class.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="messageHandler">The <see cref="IMessageHandler"/>.</param>
        /// <param name="header">The header.</param>
        /// <param name="algorithms">The <see cref="IGraphAlgorithm">algorithms</see>.</param>
        public CategoryMenuItemViewModel(IGraphProvider graphProvider, IMessageHandler messageHandler, string header, IEnumerable <IGraphAlgorithm> algorithms)
            : base(null)
        {
            this.Header = header;

            foreach (var algorithm in algorithms)
            {
                this.ChildMenuItems.Add(new IAlgorithmMenuItemViewModel(graphProvider, messageHandler, this, algorithm));
            }
        }
 public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
 {
     EditorGUI.BeginProperty(position, label, property);
     if (GUI.Button(position, label, EditorStyles.objectField))
     {
         GraphEditorWindow window   = GraphEditorWindow.ShowWindow();
         IGraphProvider    behavior = (IGraphProvider)property.GetParent();
         window.Load <T>(behavior, property.serializedObject.targetObject);
     }
     EditorGUI.EndProperty();
 }
 public AzureResourceProvider(
     IHttpContextAccessor contextAccessor,
     ITokenAcquisition tokenAcquisition,
     IHttpClientFactory httpClientFactory,
     IGraphProvider graphProvider,
     ILogger <AzureResourceProvider> logger) : base(contextAccessor, tokenAcquisition)
 {
     _httpClientFactory = httpClientFactory;
     _graphProvider     = graphProvider;
     _logger            = logger;
 }
 public AuthorizationManager(
     IHttpContextAccessor contextAccessor,
     ITokenAcquisition tokenAcquisition,
     IConfiguration configuration,
     IAzureResourceProvider azureResourceProvider,
     IGraphProvider graphProvider) : base(contextAccessor, tokenAcquisition)
 {
     _azureResourceProvider = azureResourceProvider;
     _configuration         = configuration;
     _graphProvider         = graphProvider;
 }
        public GraphNode(Graph root, Guid templateId) : base(root, templateId)
        {
            Id = templateId;

            var cmdProvider = ServiceProvider.Get <ICommandProvider>();

            _provider = ServiceProvider.Get <IGraphProvider>();

            Actions.Add("Go to Graph", cmdProvider.Create(GoToGraph));

            LinkedGraphId = templateId;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MainWindowViewModel"/> class.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="fileSelector">The <see cref="IFileSelector"/>.</param>
        /// <param name="messageHandler">The <see cref="IMessageHandler"/>.</param>
        public MainWindowViewModel(IGraphProvider graphProvider, IFileSelector fileSelector, IMessageHandler messageHandler)
        {
            this.GraphViewModel = graphProvider ?? throw new ArgumentNullException("graphProvider");
            this.FileSelector   = fileSelector ?? throw new ArgumentNullException("fileSelector");
            this.MessageHandler = messageHandler ?? throw new ArgumentNullException("messageHandler");

            this.LoadGraphCommand = new RelayCommand(param => this.LoadGraph());
            this.SaveGraphCommand = new RelayCommand(param => this.SaveGraph());
            this.ExitCommand      = new RelayCommand(param => App.Current.Shutdown());

            this.AlgorithmMenuItems = AlgorithmsMenuBuilder.GetMenuItems(this.GraphViewModel, messageHandler);
        }
Exemple #11
0
 public void Load(Type type, IGraphProvider behavior, UnityEngine.Object target)
 {
     if (behavior == null)
     {
         Close();
     }
     this.m_TargetObject = target;
     this.m_Behavior     = behavior;
     this.m_GraphView    = Activator.CreateInstance(type, this, behavior.GetGraph(), this.m_TargetObject) as IGraphView;
     EditorUtility.SetDirty(this);
     this.titleContent = new GUIContent(ObjectNames.NicifyVariableName(behavior.GetGraph().GetType().Name) + " Editor");
     this.m_GraphView.CenterGraphView();
     Repaint();
 }
Exemple #12
0
        /// <summary>
        /// Creates the visual representation for an edge.
        /// </summary>
        /// <param name="edge">The edge.</param>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="translateTransform1">The <see cref="TranslateTransform3D"/> of the visual element representing the first node of the edge.</param>
        /// <param name="translateTransform2">The <see cref="TranslateTransform3D"/> of the visual element representing the second node of the edge.</param>
        /// <returns>The visual representation for an edge.</returns>
        public static UIElement3D CreateVisual(this Edge <NodeData, EdgeData> edge, IGraphProvider graphProvider, TranslateTransform3D translateTransform1, TranslateTransform3D translateTransform2)
        {
            if (edge.Data == null)
            {
                edge.Data = new EdgeData();
            }

            if (edge.FirstNode == edge.SecondNode)
            {
                return(new SelfEdgeUIElement(graphProvider, edge, translateTransform1));
            }
            else
            {
                return(new RegularEdgeUIElement(graphProvider, edge, translateTransform1, translateTransform2));
            }
        }
Exemple #13
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GraphUIElement"/> class.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="graphData">The graph data.</param>
        public GraphUIElement(IGraphProvider graphProvider, GraphDataBase graphData)
        {
            this.GraphProvider = graphProvider;

            var colorBinding = new Binding();

            colorBinding.Mode   = BindingMode.OneWay;
            colorBinding.Source = graphData;
            colorBinding.Path   = new PropertyPath("Color");
            BindingOperations.SetBinding(this, GraphUIElement.ColorProperty, colorBinding);

            graphData.Blinking += new System.EventHandler <AnimationEventArgs>(this.Blinking);

            this.observer = new PropertyObserver <GraphDataBase>(graphData)
                            .RegisterHandler(g => g.Marked, g => this.InvalidateModel());
        }
Exemple #14
0
        /// <summary>
        /// Computes traversible path between given points
        /// </summary>
        public static T[] GetPath(T start, T goal, IGraphProvider <T> provider)
        {
            if (start == null || goal == null)
            {
                return(new T[0]);
            }
            var open   = new PList();
            var closed = new PList();

            open.Add(new SearchNode <T>(start, 0f, provider.H(start, goal), null));
            var result = TraversePath(goal, open, closed, provider);

            if (result != null)
            {
                return(result.RetraceSteps());
            }
            return(new T[0]);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="RegularEdgeUIElement"/> class.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="edge">The edge.</param>
        /// <param name="translateTransform1">The <see cref="TranslateTransform3D"/> of the visual element representing the first node of the edge.</param>
        /// <param name="translateTransform2">The <see cref="TranslateTransform3D"/> of the visual element representing the second node of the edge.</param>
        public RegularEdgeUIElement(IGraphProvider graphProvider, Edge <NodeData, EdgeData> edge, TranslateTransform3D translateTransform1, TranslateTransform3D translateTransform2)
            : base(graphProvider, edge)
        {
            this.translateTransform1 = translateTransform1;
            this.translateTransform2 = translateTransform2;

            this.positionXDescriptor = DependencyPropertyDescriptor.FromProperty(TranslateTransform3D.OffsetXProperty, typeof(TranslateTransform3D));
            this.positionXDescriptor.AddValueChanged(translateTransform1, (s, e) => this.UpdatePosition());
            this.positionXDescriptor.AddValueChanged(translateTransform2, (s, e) => this.UpdatePosition());

            this.positionYDescriptor = DependencyPropertyDescriptor.FromProperty(TranslateTransform3D.OffsetYProperty, typeof(TranslateTransform3D));
            this.positionYDescriptor.AddValueChanged(translateTransform1, (s, e) => this.UpdatePosition());
            this.positionYDescriptor.AddValueChanged(translateTransform2, (s, e) => this.UpdatePosition());

            this.positionZDescriptor = DependencyPropertyDescriptor.FromProperty(TranslateTransform3D.OffsetZProperty, typeof(TranslateTransform3D));
            this.positionZDescriptor.AddValueChanged(translateTransform1, (s, e) => this.UpdatePosition());
            this.positionZDescriptor.AddValueChanged(translateTransform2, (s, e) => this.UpdatePosition());

            this.UpdatePosition();
        }
        /// <summary>
        /// Gets the menu items.
        /// Retrieves all implementations of <see cref="IGraphAlgorithm"/> from this assembly in a hierarchical structure.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <param name="messageHandler">The <see cref="IMessageHandler"/>.</param>
        /// <returns>The menu items.</returns>
        public static IEnumerable <MenuItemViewModel> GetMenuItems(IGraphProvider graphProvider, IMessageHandler messageHandler)
        {
            var menuItems = new ObservableCollection <MenuItemViewModel>();

            var algorithms = GetTypesByInterface(new Assembly[] { Assembly.GetExecutingAssembly() }, typeof(IGraphAlgorithm));
            var instances  = algorithms.Select(a => (IGraphAlgorithm)Activator.CreateInstance(a)).OrderBy(a => a.Category).ThenBy(a => a.Name);

            var categories = instances.Select(a => a.Category).Where(c => c != null).Distinct();

            foreach (var category in categories)
            {
                menuItems.Add(new CategoryMenuItemViewModel(graphProvider, messageHandler, category, instances.Where(a => category.Equals(a.Category))));
            }

            foreach (var algorithm in instances.Where(a => a.Category == null))
            {
                menuItems.Add(new IAlgorithmMenuItemViewModel(graphProvider, messageHandler, null, algorithm));
            }

            return(menuItems);
        }
Exemple #17
0
        private static SearchNode <T> TraversePath(T goal, PList open, PList closed, IGraphProvider <T> _provider)
        {
            if (open.Count == 0)
            {
                return(null);
            }
            var current = open.FindBest();

            if (current.Node == goal)
            {
                return(current);
            }
            closed.Add(current);
            var edges = _provider.GetEdges(current.Node);

            foreach (var e in edges)
            {
                if (closed.HasNode(e.Node))
                {
                    continue;
                }
                var openChild = open.FindNode(e.Node);
                if (!openChild)
                {
                    openChild = new SearchNode <T>(e.Node, e.Cost, _provider.H(e.Node, goal), current);
                    open.Add(openChild);
                }
                else
                {
                    float g = current.G + e.Cost;
                    if ((g + openChild.H) < openChild.F)
                    {
                        openChild.SetParent(current, e.Cost);
                    }
                }
            }
            return(TraversePath(goal, open, closed, _provider));
        }
Exemple #18
0
        public Logic(
            IGraphProvider graphProvider,
            IBitmapProvider bitmapProvider,
            Log logger,
            Commands commands,
            ConnectionData connectionData)
        {
            GraphProvider = graphProvider;
            Bitmap        = bitmapProvider.Bitmap;
            Logger        = logger;
            Commands      = commands;

            bitmapProvider.ShowBitmap();
            graphProvider.ShowGraph();

            _groundSprite = BitmapLoader.Load(SolutionDirectory.Get(@"Images\Shooter\Tiles\tile_05.png"), 16, 16);
            _waterSprite  = BitmapLoader.Load(SolutionDirectory.Get(@"Images\Shooter\Tiles\tile_19.png"), 16, 16);
            _treeSprite   = BitmapLoader.Load(SolutionDirectory.Get(@"Images\Shooter\Tiles\tile_183.png"), 16, 16);

            Commands.Login(connectionData.Host, connectionData.Port, connectionData.UserName, connectionData.Password);

            Logger.LogCommands = true;
        }
 /// <summary>
 /// Initializes a new instance of a QueryableGraph &lt;T&gt; class
 /// </summary>
 /// <param name="graphProvider"></param>
 internal TypedQueryableGraph(IGraphProvider graphProvider) : base(graphProvider)
 {
 }
Exemple #20
0
 public static IStore Create(string id, IGraphProvider provider)
 {
     return(new Store(id, provider));
 }
Exemple #21
0
 public SetProvider(IGraphProvider graphProvider)
 {
     _graphProvider = graphProvider;
     _setList = new ConcurrentDictionary<string, IStore>();
 }
Exemple #22
0
        /// <summary>
        /// Creates the visual representation for a node.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        /// <returns>The visual representation for a node.</returns>
        public static NodeUIElement CreateVisual(this Node <NodeData, EdgeData> node, IGraphProvider graphProvider)
        {
            if (node.Data == null)
            {
                node.Data = new NodeData();
            }

            return(new NodeUIElement(graphProvider, node));
        }
Exemple #23
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MainWindow"/> class.
        /// </summary>
        /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
        public MainWindow(IGraphProvider graphProvider)
        {
            this.InitializeComponent();

            this.graphProvider = graphProvider;
        }
 public GraphLoader(IClientEndpointsManager manager, IGraphProvider graphProvider)
 {
     _manager = manager;
     _graphProvider = graphProvider;
 }
 /// <summary>
 /// Initializes a new instance of a QueryableGraph &lt;T&gt; class, for internal usage
 /// </summary>
 private TypedQueryableGraph(IGraphProvider graphProvider, GraphExpression graphExpression, LabelledTreeNode <Type, Term> typeGraph) : base(graphProvider, graphExpression)
 {
     TypeGraph = typeGraph;
 }
Exemple #26
0
 public Checkpoint(IGraphProvider graphProvider)
 {
     _graphProvider = graphProvider;
 }
Exemple #27
0
 //public MMForm()
 //{
 //    InitializeComponent();
 //    init();
 //}
 public MMForm(IGraphProvider provider)
 {
     InitializeComponent();
     init();
     this.provider = provider;
 }
Exemple #28
0
 /// <summary>
 /// Returns an instance of a QueryableGraph
 /// </summary>
 /// <param name="graphExpression">codifies the query to be executed</param>
 /// <param name="graphProvider">manages the translation of graph expression to generic graph query result</param>
 public QueryableGraph(IGraphProvider graphProvider, GraphExpression graphExpression = null)
 {
     GraphProvider   = graphProvider;
     GraphExpression = graphExpression ?? GraphExpression.Empty;
 }
Exemple #29
0
 public void Load <T>(IGraphProvider behavior, UnityEngine.Object target)
 {
     Load(typeof(T), behavior, target);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SelfEdgeUIElement"/> class.
 /// </summary>
 /// <param name="graphProvider">The <see cref="IGraphProvider"/>.</param>
 /// <param name="edge">The edge.</param>
 /// <param name="translateTransform">The <see cref="TranslateTransform3D"/> of the visual element representing the node of the edge.</param>
 public SelfEdgeUIElement(IGraphProvider graphProvider, Edge<NodeData, EdgeData> edge, TranslateTransform3D translateTransform)
     : base(graphProvider, edge)
 {
     this.Transform = translateTransform;
 }