private void trvBooks_Drop(object sender, DragEventArgs e) { try { if (e.Data.GetDataPresent(DataFormats.FileDrop, true)) { string[] fileNames = e.Data.GetData(DataFormats.FileDrop, true) as string[]; if (fileNames != null && fileNames.Length > 0) { TreeViewItem trvNode = new BauMvvm.Views.Tools.ToolsWpf().FindAncestor <TreeViewItem>((DependencyObject)e.OriginalSource); BaseNodeViewModel nodeTarget = null; // Si se ha encontrado algún nodo, recoge el objeto ViewModel if (trvNode != null) { nodeTarget = trvNode.Header as BaseNodeViewModel; } // Crea los nodos de eBook ViewModel.CreateEBookNodes(nodeTarget, fileNames, BookLibraryPlugin.MainInstance.HostPluginsController.ControllerWindow.ShowQuestion("¿Desea eliminar los archivos originales?")); } } } catch (Exception exception) { BookLibraryPlugin.MainInstance.HostPluginsController.ControllerWindow.ShowMessage("Excepción al recoger los archivos: " + exception.Message); } }
public BlogSeeNewsControlView(BaseNodeViewModel nodeViewModel) { // Inicializa los componentes InitializeComponent(); // Crea el temporizador de lectura _tmrRead = new DispatcherTimer(); _tmrRead.Interval = new TimeSpan(0, 0, 30); _tmrRead.Tick += tmrRead_Tick; // Inicializa el ViewModel ViewModel = CreateViewModel(nodeViewModel); grdData.DataContext = ViewModel; lswEntries.ItemsSource = ViewModel.Entries; FormView = new BaseFormView(ViewModel); // Observa el evento PropertyChanged para ver cuándo se cambia el Html ViewModel.PropertyChanged += (sender, evntArgs) => { if (evntArgs.PropertyName.EqualsIgnoreCase("HtmlNews")) { ShowHtmlNews(); } }; // Añade el viewModel al explorador wbExplorer.DataContext = ViewModel; wbExplorer.FunctionExecute += (sender, evntArgs) => ViewModel.ExecuteFromExplorer(evntArgs.Parameters); // Agrupa los elementos if (lswEntries.ItemsSource != null) { CollectionView views = (CollectionView)CollectionViewSource.GetDefaultView(lswEntries.ItemsSource); PropertyGroupDescription groupDescription = new PropertyGroupDescription("BlogName"); views.GroupDescriptions.Add(groupDescription); } // Muestra el HTML ShowHtmlNews(); }
/// <summary> /// Crea el ViewModel /// </summary> private BlogSeeNewsViewModel CreateViewModel(BaseNodeViewModel nodeViewModel) { BlogsModelCollection blogs = new BlogsModelCollection(); // Obtiene la colección de blogs if (nodeViewModel != null) { blogs = nodeViewModel.GetBlogs(); } // Devuelve el ViewModel return(new BlogSeeNewsViewModel(blogs)); }
/// <summary> /// Corta / copia un nodo sobre otro /// </summary> private void DropNode(BaseNodeViewModel nodeSource, DependencyObject eventTarget, bool copy) { if (nodeSource != null) { BaseNodeViewModel nodeTarget = GetTreeNodeFromEventTarget(eventTarget); if (nodeTarget != null) { ViewModel.Copy(nodeSource, nodeTarget, copy); } } }
/// <summary> /// Carga los nodos del árbol /// </summary> private TreeViewItemsViewModelCollection LoadTreeNodes(BaseNodeViewModel parent, FileModel file, OwnerChildModelCollection childs) { TreeViewItemsViewModelCollection nodes = new TreeViewItemsViewModelCollection(); // Crea los nodos if (childs != null) { foreach (OwnerChildModel ownerChild in childs) { nodes.Add(new OwnerNodeViewModel(file, ownerChild, parent, ownerChild.HasChilds)); } } // Devuelve la colección de nodos return(nodes); }
/// <summary> /// Obtiene los nodos correspondientes a las definiciones de objetos propietario /// </summary> private TreeViewItemsViewModelCollection LoadOwnerNodes(BaseNodeViewModel parent, FileModel file, OwnerChildModel owner, OwnerObjectDefinitionModelCollection ownerDefinitions) { TreeViewItemsViewModelCollection nodes = new TreeViewItemsViewModelCollection(); // Obtiene los nodos if (owner != null && owner.ObjectChilds != null && owner.ObjectChilds.Count > 0) { nodes = LoadTreeNodes(parent, file, owner.ObjectChilds); } else { // Normaliza los elementos hijo if (ownerDefinitions == null || ownerDefinitions.Count == 0) { if (file is ProjectModel) { ownerDefinitions = (file as ProjectModel)?.Definition.OwnerChilds; } else { ownerDefinitions = file.FileDefinition.OwnerChilds; } } // Carga los nodos foreach (OwnerObjectDefinitionModel ownerDefinition in ownerDefinitions) { if (ownerDefinition.IsRootNode) { nodes.Add(new OwnerNodeViewModel(file, new OwnerChildModel(file.FullFileName + "_" + ownerDefinition.GlobalId, file, ownerDefinition.Name, ownerDefinition, ownerDefinition.OwnerChilds.Count > 0), parent)); } else { nodes = LoadTreeNodes(parent, file, SourceEditorViewModel.Instance.MessagesController.LoadOwnerChilds(file, owner)); } } } // Devuelve la colección de nodos return(nodes); }
private void trvExplorer_Drop(object sender, DragEventArgs e) { BaseNodeViewModel nodeSource = _dragDropController.GetDragDropFileNode(e.Data) as BaseNodeViewModel; if (nodeSource != null) { TreeViewItem trvNode = new Libraries.BauMvvm.Views.Tools.ToolsWpf().FindAncestor <TreeViewItem>((DependencyObject)e.OriginalSource); if (trvNode != null) { BaseNodeViewModel nodeTarget = trvNode.Header as BaseNodeViewModel; if (nodeSource != null && nodeTarget != null) { ViewModel.Copy(nodeSource, nodeTarget, (e.KeyStates & DragDropKeyStates.ControlKey) == DragDropKeyStates.ControlKey); } } } }
/// <summary> /// Copia los archivos seleccionados desde el navegador en el nodo apropiado del árbol /// </summary> private void DropExternalFiles(string[] arrfileNames, DependencyObject eventTarget) { try { if (arrfileNames != null && arrfileNames.Length > 0) { BaseNodeViewModel nodeTarget = GetTreeNodeFromEventTarget(eventTarget); // Si se ha encontrado algún nodo, copia los archivos en el nodo if (nodeTarget != null) { ViewModel.Copy(nodeTarget, arrfileNames); } } } catch (Exception exception) { SourceEditorPlugin.MainInstance.HostPluginsController.ControllerWindow.ShowMessage($"Excepción al copiar los archivos: {exception.Message}"); } }
/// <summary> /// Abre la ventana de propiedades de un contacto /// </summary> private void OpenPropertiesNewContact() { BaseNodeViewModel node = Tree.GetSelectedNode(); if (node == null) { BauMessengerViewModel.Instance.ControllerWindow.ShowMessage("Seleccione una conexión en el árbol"); } else { JabberConnection connection = node.GetConnectionNode()?.Connection; if (connection == null) { BauMessengerViewModel.Instance.ControllerWindow.ShowMessage("Seleccione una conexión en el árbol"); } else { BauMessengerViewModel.Instance.ViewsController.OpenPropertiesContact (new Contacts.ContactViewModel(connection, null)); } } }
private static BaseNodeViewModel AddSubNode(ObservableCollection <BaseNodeViewModel> tree, string name, BaseNodeViewModel parent) { var newChild = new NodeViewModel(name); if (parent == null) { tree.Add(newChild); parent = newChild; } else { (parent as NodeViewModel).Children.Add(newChild); } return(newChild); }
/// <summary> /// Obtiene los nodos correspondientes a las definiciones hija de un objeto propietario /// </summary> internal TreeViewItemsViewModelCollection LoadOwnerNodes(BaseNodeViewModel parent, FileModel file, OwnerChildModel ownerChild) { return(LoadOwnerNodes(parent, file, ownerChild, ownerChild.Definition.OwnerChilds)); }
/// <summary> /// Obtiene los nodos propietario /// </summary> internal TreeViewItemsViewModelCollection LoadOwnerNodes(BaseNodeViewModel parent, FileModel file) { return(LoadOwnerNodes(parent, file, null, file.FileDefinition.OwnerChilds)); }