Ejemplo n.º 1
0
        private void renameFromLibraryButton_Click(IEnumerable <QueueRowItem> s, object p)
        {
            if (libraryDataView.SelectedItems.Count == 1)
            {
                if (renameItemWindow == null)
                {
                    LibraryRowItem           rowItem        = libraryDataView.SelectedItems[0];
                    LibraryRowItemPart       partItem       = rowItem as LibraryRowItemPart;
                    LibraryRowItemCollection collectionItem = rowItem as LibraryRowItemCollection;

                    string currentName = libraryDataView.SelectedItems[0].ItemName;

                    renameItemWindow = new RenameItemWindow(currentName, (returnInfo) =>
                    {
                        if (partItem != null)
                        {
                            libraryDataView.CurrentLibraryProvider.RenameItem(partItem.ItemIndex, returnInfo.newName);
                        }
                        else if (collectionItem != null)
                        {
                            libraryDataView.CurrentLibraryProvider.RenameCollection(collectionItem.CollectionIndex, returnInfo.newName);
                        }

                        libraryDataView.ClearSelectedItems();
                    });

                    renameItemWindow.Closed += (sender2, e2) => { renameItemWindow = null; };
                }
                else
                {
                    renameItemWindow.BringToFront();
                }

                /*
                 * LibraryDataView.CurrentLibraryProvider.RenameCollection(collectionIndex, newName);
                 *
                 * LibraryRowItem libraryItem = libraryDataView.SelectedItems[0];
                 * libraryItem.RenameThisInPrintLibrary(newName.Data);
                 *
                 */
            }
        }
		private void renameFromLibraryButton_Click(IEnumerable<QueueRowItem> s, object p)
		{
			if (libraryDataView.SelectedItems.Count == 1)
			{
				if (renameItemWindow == null)
				{
					LibraryRowItem rowItem = libraryDataView.SelectedItems[0];
					LibraryRowItemPart partItem = rowItem as LibraryRowItemPart;
					LibraryRowItemCollection collectionItem = rowItem as LibraryRowItemCollection;

					string currentName = libraryDataView.SelectedItems[0].ItemName;

					renameItemWindow = new RenameItemWindow(currentName, (returnInfo) =>
					{
						if (partItem != null)
						{
							libraryDataView.CurrentLibraryProvider.RenameItem(partItem.ItemIndex, returnInfo.newName);
						}
						else if (collectionItem != null)
						{
							libraryDataView.CurrentLibraryProvider.RenameCollection(collectionItem.CollectionIndex, returnInfo.newName);
						}

						libraryDataView.ClearSelectedItems();
					});

					renameItemWindow.Closed += (sender2, e2) => { renameItemWindow = null; };
				}
				else
				{
					renameItemWindow.BringToFront();
				}

				/*
				LibraryDataView.CurrentLibraryProvider.RenameCollection(collectionIndex, newName);

				LibraryRowItem libraryItem = libraryDataView.SelectedItems[0];
				libraryItem.RenameThisInPrintLibrary(newName.Data);

				 */
			}
		}
Ejemplo n.º 3
0
		private void CreateEditBarButtons()
		{
			itemOperationButtons = new FlowLayoutWidget();
			itemOperationButtons.Visible = false;
			itemOperationButtons.BackgroundColor = ActiveTheme.Instance.TransparentDarkOverlay;
			itemOperationButtons.HAnchor = HAnchor.Max_FitToChildren_ParentWidth;
			double oldWidth = editButtonFactory.FixedWidth;
			editButtonFactory.FixedWidth = 0;

			Button exportItemButton = editButtonFactory.Generate("Export".Localize());
			exportItemButton.Margin = new BorderDouble(3, 0);
			exportItemButton.Click += exportButton_Click;
			editButtonsEnableData.Add(new ButtonEnableData(false, false));
			itemOperationButtons.AddChild(exportItemButton);

			Button editItemButton = editButtonFactory.Generate("Edit".Localize());
			editItemButton.Margin = new BorderDouble(3, 0);
			editItemButton.Click += editButton_Click;
			editButtonsEnableData.Add(new ButtonEnableData(false, false));
			itemOperationButtons.AddChild(editItemButton);

			// add the remove button
			{
				Button removeFromLibraryButton = editButtonFactory.Generate("Remove".Localize());
				removeFromLibraryButton.Margin = new BorderDouble(3, 0);
				removeFromLibraryButton.Click += deleteFromLibraryButton_Click;
				editButtonsEnableData.Add(new ButtonEnableData(true, false));
				itemOperationButtons.AddChild(removeFromLibraryButton);
			}

			// add a rename button
			{
				Button renameFromLibraryButton = editButtonFactory.Generate("Rename".Localize());
				renameFromLibraryButton.Margin = new BorderDouble(3, 0);
				editButtonsEnableData.Add(new ButtonEnableData(false, false));
				itemOperationButtons.AddChild(renameFromLibraryButton);

				renameFromLibraryButton.Click += (sender, e) =>
				{
					if (libraryDataView.SelectedItems.Count == 1)
					{
						if (renameItemWindow == null)
						{
							LibraryRowItem rowItem = libraryDataView.SelectedItems[0];
							LibraryRowItemPart partItem = rowItem as LibraryRowItemPart;
							LibraryRowItemCollection collectionItem = rowItem as LibraryRowItemCollection;

							string currentName = libraryDataView.SelectedItems[0].ItemName;

							renameItemWindow = new RenameItemWindow(currentName, (returnInfo) =>
							{
								if (partItem != null)
								{
									libraryDataView.CurrentLibraryProvider.RenameItem(partItem.ItemIndex, returnInfo.newName);
								}
								else if (collectionItem != null)
								{
									libraryDataView.CurrentLibraryProvider.RenameCollection(collectionItem.CollectionIndex, returnInfo.newName);
								}

								libraryDataView.ClearSelectedItems();
							});

							renameItemWindow.Closed += (sender2, e2) => { renameItemWindow = null; };
						}
						else
						{
							renameItemWindow.BringToFront();
						}

						/*
						LibraryDataView.CurrentLibraryProvider.RenameCollection(collectionIndex, newName);

						LibraryRowItem libraryItem = libraryDataView.SelectedItems[0];
						libraryItem.RenameThisInPrintLibrary(newName.Data);

						 */
					}
				};
			}

			Button addToQueueButton = editButtonFactory.Generate("Add to Queue".Localize());
			addToQueueButton.Margin = new BorderDouble(3, 0);
			addToQueueButton.Click += addToQueueButton_Click;
			editButtonsEnableData.Add(new ButtonEnableData(true, true));
			itemOperationButtons.AddChild(addToQueueButton);

			editButtonFactory.FixedWidth = oldWidth;
		}
        private void CreateEditBarButtons()
        {
            itemOperationButtons                 = new FlowLayoutWidget();
            itemOperationButtons.Visible         = false;
            itemOperationButtons.BackgroundColor = ActiveTheme.Instance.TransparentDarkOverlay;
            itemOperationButtons.HAnchor         = HAnchor.Max_FitToChildren_ParentWidth;
            double oldWidth = editButtonFactory.FixedWidth;

            editButtonFactory.FixedWidth = 0;

            Button exportItemButton = editButtonFactory.Generate("Export".Localize());

            exportItemButton.Name   = "Library Export Button";
            exportItemButton.Margin = new BorderDouble(3, 0);
            exportItemButton.Click += exportButton_Click;
            editButtonsEnableData.Add(new ButtonEnableData(false, false, false));
            itemOperationButtons.AddChild(exportItemButton);

            Button editItemButton = editButtonFactory.Generate("Edit".Localize());

            editItemButton.Name   = "Library Edit Item Button";
            editItemButton.Margin = new BorderDouble(3, 0);
            editItemButton.Click += editButton_Click;
            editButtonsEnableData.Add(new ButtonEnableData(false, false, false));
            itemOperationButtons.AddChild(editItemButton);

            // add the remove button
            {
                Button removeFromLibraryButton = editButtonFactory.Generate("Remove".Localize());
                removeFromLibraryButton.Name   = "Library Remove Item Button";
                removeFromLibraryButton.Margin = new BorderDouble(3, 0);
                removeFromLibraryButton.Click += deleteFromLibraryButton_Click;
                editButtonsEnableData.Add(new ButtonEnableData(true, false, true));
                itemOperationButtons.AddChild(removeFromLibraryButton);
            }



            // add the share button
            {
                Button shareFromLibraryButton = editButtonFactory.Generate("Share".Localize());
                shareFromLibraryButton.ToolTipText = "Share designs from your Cloud Library".Localize();
                shareFromLibraryButton.Margin      = new BorderDouble(3, 0);
                shareFromLibraryButton.Click      += shareFromLibraryButton_Click;
                editButtonsEnableData.Add(new ButtonEnableData(false, false, false, true));
                itemOperationButtons.AddChild(shareFromLibraryButton);
            }



            // add a rename button
            {
                Button renameFromLibraryButton = editButtonFactory.Generate("Rename".Localize());
                renameFromLibraryButton.Name   = "Rename From Library Button";
                renameFromLibraryButton.Margin = new BorderDouble(3, 0);
                editButtonsEnableData.Add(new ButtonEnableData(false, false, true));
                itemOperationButtons.AddChild(renameFromLibraryButton);

                renameFromLibraryButton.Click += (sender, e) =>
                {
                    if (libraryDataView.SelectedItems.Count == 1)
                    {
                        if (renameItemWindow == null)
                        {
                            LibraryRowItem           rowItem        = libraryDataView.SelectedItems[0];
                            LibraryRowItemPart       partItem       = rowItem as LibraryRowItemPart;
                            LibraryRowItemCollection collectionItem = rowItem as LibraryRowItemCollection;

                            string currentName = libraryDataView.SelectedItems[0].ItemName;

                            renameItemWindow = new RenameItemWindow(currentName, (returnInfo) =>
                            {
                                if (partItem != null)
                                {
                                    libraryDataView.CurrentLibraryProvider.RenameItem(partItem.ItemIndex, returnInfo.newName);
                                }
                                else if (collectionItem != null)
                                {
                                    libraryDataView.CurrentLibraryProvider.RenameCollection(collectionItem.CollectionIndex, returnInfo.newName);
                                }

                                libraryDataView.ClearSelectedItems();
                            });

                            renameItemWindow.Closed += (sender2, e2) => { renameItemWindow = null; };
                        }
                        else
                        {
                            renameItemWindow.BringToFront();
                        }

                        /*
                         * LibraryDataView.CurrentLibraryProvider.RenameCollection(collectionIndex, newName);
                         *
                         * LibraryRowItem libraryItem = libraryDataView.SelectedItems[0];
                         * libraryItem.RenameThisInPrintLibrary(newName.Data);
                         *
                         */
                    }
                };
            }

            Button addToQueueButton = editButtonFactory.Generate("Add to Queue".Localize());

            addToQueueButton.Name   = "Library Add To Queue Button";
            addToQueueButton.Margin = new BorderDouble(3, 0);
            addToQueueButton.Click += addToQueueButton_Click;
            editButtonsEnableData.Add(new ButtonEnableData(true, true, false));
            itemOperationButtons.AddChild(addToQueueButton);

            editButtonFactory.FixedWidth = oldWidth;
        }
Ejemplo n.º 5
0
        public override IEnumerable <PrintItemAction> GetMenuItems()
        {
            return(new List <PrintItemAction>()
            {
                new PrintItemAction()
                {
                    SingleItemOnly = false,
                    Title = "Merge".Localize() + "...",
                    Action = (items, queueDataWidget) =>
                    {
                        List <QueueRowItem> allRowItems = new List <QueueRowItem>(items);
                        if (allRowItems.Count > 1)
                        {
                            RenameItemWindow renameItemWindow = new RenameItemWindow(allRowItems[0].PrintItemWrapper.Name, (returnInfo) =>
                            {
                                Task.Run(() =>
                                {
                                    List <MeshGroup> combinedMeshes = new List <MeshGroup>();

                                    // Load up all the parts and merge them together
                                    foreach (QueueRowItem item in allRowItems)
                                    {
                                        List <MeshGroup> loadedMeshGroups = MeshFileIo.Load(item.PrintItemWrapper.FileLocation);
                                        combinedMeshes.AddRange(loadedMeshGroups);
                                    }

                                    // save them out
                                    string[] metaData = { "Created By", "MatterControl", "BedPosition", "Absolute" };
                                    MeshOutputSettings outputInfo = new MeshOutputSettings(MeshOutputSettings.OutputType.Binary, metaData);
                                    string libraryDataPath = ApplicationDataStorage.Instance.ApplicationLibraryDataPath;
                                    if (!Directory.Exists(libraryDataPath))
                                    {
                                        Directory.CreateDirectory(libraryDataPath);
                                    }

                                    string tempFileNameToSaveTo = Path.Combine(libraryDataPath, Path.ChangeExtension(Path.GetRandomFileName(), "amf"));
                                    bool savedSuccessfully = MeshFileIo.Save(combinedMeshes, tempFileNameToSaveTo, outputInfo);

                                    // Swap out the files if the save operation completed successfully
                                    if (savedSuccessfully && File.Exists(tempFileNameToSaveTo))
                                    {
                                        // create a new print item
                                        // add it to the queue
                                        PrintItemWrapper newPrintItem = new PrintItemWrapper(new PrintItem(returnInfo.newName, tempFileNameToSaveTo));
                                        QueueData.Instance.AddItem(newPrintItem, 0);

                                        // select the part we added, if possible
                                        QueueData.Instance.SelectedIndex = 0;

                                        queueDataWidget.LeaveEditMode();
                                    }
                                });
                            }, "Set Name".Localize())
                            {
                                Title = "MatterHackers - Set Name".Localize(),
                                ElementHeader = "Set Name".Localize(),
                            };
                        }
                    }
                }
            });
        }
		public override IEnumerable<PrintItemAction> GetMenuItems()
		{
			return new List<PrintItemAction>()
			{
				new PrintItemAction()
				{
					SingleItemOnly = false,
					Title = "Merge...",
					Action = (items, queueDataWidget) =>
					{
						List<QueueRowItem> allRowItems = new List<QueueRowItem>(items);
						if (allRowItems.Count > 1)
						{
							RenameItemWindow renameItemWindow = new RenameItemWindow(allRowItems[0].PrintItemWrapper.Name, (returnInfo) =>
							{
								Task.Run(() =>
								{
									List<MeshGroup> combinedMeshes = new List<MeshGroup>();

									// Load up all the parts and merge them together
									foreach(QueueRowItem item in allRowItems)
									{
										List<MeshGroup> loadedMeshGroups = MeshFileIo.Load(item.PrintItemWrapper.FileLocation);
										combinedMeshes.AddRange(loadedMeshGroups);
									}

									// save them out
									string[] metaData = { "Created By", "MatterControl", "BedPosition", "Absolute" };
									MeshOutputSettings outputInfo = new MeshOutputSettings(MeshOutputSettings.OutputType.Binary, metaData);
									string libraryDataPath = ApplicationDataStorage.Instance.ApplicationLibraryDataPath;
									if (!Directory.Exists(libraryDataPath))
									{
										Directory.CreateDirectory(libraryDataPath);
									}

									string tempFileNameToSaveTo = Path.Combine(libraryDataPath, Path.ChangeExtension(Path.GetRandomFileName(), "amf"));
									bool savedSuccessfully = MeshFileIo.Save(combinedMeshes, tempFileNameToSaveTo, outputInfo);

									// Swap out the files if the save operation completed successfully
									if (savedSuccessfully && File.Exists(tempFileNameToSaveTo))
									{
										// create a new print item
										// add it to the queue
										PrintItemWrapper newPrintItem = new PrintItemWrapper(new PrintItem(returnInfo.newName, tempFileNameToSaveTo));
										QueueData.Instance.AddItem(newPrintItem, 0);

										// select the part we added, if possible
										QueueData.Instance.SelectedIndex = 0;

										queueDataWidget.LeaveEditMode();
									}
								});
							}, "Set Name".Localize())
							{
								Title = "MatterHackers - Set Name".Localize(),
								ElementHeader = "Set Name".Localize(),
							};
						}
					}
				}
			};
		}