Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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;
        }