private void CommitListViewClick(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) { if (listList.SelectedItems.Count == 0) { return; } if (wrapper == null) { return; } foreach (Control c in itemPanel.Controls) { if (c.Tag != null) { listList.SelectedItems[0].SubItems[(int)c.Tag].Text = c.Text; if (listList.SelectedItems[0].Tag != null) { SimPe.PackedFiles.Wrapper.GenericItem fileitem = (SimPe.PackedFiles.Wrapper.GenericItem)listList.SelectedItems[0].Tag; fileitem.Properties[listList.Columns[(int)c.Tag].Text] = c.Text; } } } wrapper.SynchronizeUserData(); }
protected void AddTreeNodes(Wrapper.GenericItem[] items, TreeNode parent, string[] names) { for (uint i = 0; i < items.Length; i++) { SimPe.PackedFiles.Wrapper.GenericItem fileitem = items[i]; if (fileitem != null) { string text = ToString(names[0], fileitem, fileitem.Properties[names[0]]) + " ("; for (int k = 1; k < names.Length; k++) { if (k > 1) { text += ", "; } text += names[k] + "=" + ToString(names[k], fileitem, fileitem.Properties[names[k]]); } text += ")"; TreeNode node = new TreeNode(text); node.Tag = fileitem; if (fileitem.Count > 0) { AddTreeNodes(fileitem.Subitems, node, names); } if (parent == null) { form.mytree.Nodes.Add(node); } else { parent.Nodes.Add(node); } } } }
public void UpdateGUI(SimPe.Interfaces.Plugin.IFileWrapper wrapper) { SimPe.PackedFiles.Wrapper.Generic generic = (SimPe.PackedFiles.Wrapper.Generic)wrapper; if (wrapper.GetType().GetInterface("SimPe.Interfaces.Plugin.IFileWrapperSaveExtension", true) != null) { form.wrapper = (SimPe.Interfaces.Plugin.IFileWrapperSaveExtension)wrapper; form.lllvcommit.Enabled = true; } else { form.wrapper = null; form.lllvcommit.Enabled = false; } //visualStyleLinkLabel1 IPackedFileDescriptor pfd = wrapper.FileDescriptor; form.listList.Items.Clear(); form.listList.Columns.Clear(); form.listBanner.Text = "[Can't process unknown type 0x" + pfd.Type.ToString("X") + "]"; try { SimPe.PackedFiles.Wrapper.Generic.CreateFileObject cfo = (SimPe.PackedFiles.Wrapper.Generic.CreateFileObject)generic.Subhandlers[pfd.Type]; SimPe.PackedFiles.Wrapper.Generic file = generic; form.listBanner.Text = file.GetTypeName(pfd.Type) + " " + Localization.Manager.GetString("viewer"); //clear the Item Panel form.itemPanel.Controls.Clear(); //create Columns SimPe.PackedFiles.Wrapper.GenericCommon common = file.Attributes; if (file.Count > 0) { common = file.GetItem(0); } string[] names = common.Names; int size = 0; if (names.Length == 0) { return; } int[] lengths = new int[names.Length]; for (int i = 0; i < names.Length; i++) { string s = names[i]; int thissize = Math.Max(190, s.Length * 15); size += thissize; if (i == names.Length - 1) { thissize = Math.Max(thissize, form.listList.Width - size); } form.listList.Columns.Add(s, thissize, System.Windows.Forms.HorizontalAlignment.Left); Label lb = new Label(); lb.Parent = form.itemPanel; lb.Location = new Point(0, i * 21 + 4); lb.Text = names[i]; lb.AutoSize = true; lb.BackColor = Color.Transparent; TextBox tb = new TextBox(); tb.Parent = form.itemPanel; tb.Location = new Point(lb.Width + 8, i * 21); tb.Text = ""; tb.Width = form.itemPanel.ClientRectangle.Width - tb.Left; tb.Tag = i; lengths[i] = 0; } if (file.Count > 0) //we have FileItems { for (uint i = 0; i < file.Count; i++) { SimPe.PackedFiles.Wrapper.GenericItem fileitem = file.GetItem(i); if (fileitem != null) { string name = ToString(names[0], fileitem, fileitem.Properties[names[0]]); ListViewItem item = new ListViewItem(name); lengths[0] = (int)Math.Max(lengths[0], name.Length); for (int k = 1; k < names.Length; k++) { name = ToString(names[k], fileitem, fileitem.Properties[names[k]]); item.SubItems.Add(name); lengths[k] = (int)Math.Max(lengths[k], name.Length); } item.Tag = fileitem; form.listList.Items.Add(item); } } } for (int i = 0; i < form.listList.Columns.Count; i++) { ColumnHeader h = form.listList.Columns[i]; h.Width = (int)Math.Min(200, lengths[i] * 10); } if (form.listList.Items.Count == 1) { form.listBanner.Text += " (" + form.listList.Items.Count.ToString() + " Item)"; } else { form.listBanner.Text += " (" + form.listList.Items.Count.ToString() + " Items)"; } } catch (Exception ex) { if (Helper.DebugMode) { form.listBanner.Text += " [" + ex.Message + "]"; } } //form.listList.Sort(); form.listList.ListViewItemSorter = null; }