コード例 #1
0
        private void addMethodBox(int rowIndex, ArtifactXmlReader reader, MethodVO mth)
        {
            int      longerLine;
            MethodVO leftMth   = mth;
            MethodVO rightMth  = mth;
            string   leftText  = "";
            string   rightText = "";
            ListBox  listL     = makeNewListBox();
            ListBox  listR     = makeNewListBox();

            switch (mth.changed)
            {
            case 'U':
                leftMth  = reader.readMethodDiffDetail(mth.guid, "L");
                rightMth = reader.readMethodDiffDetail(mth.guid, "R");
                DiffPresenter.getDisagreedMethodDesc(leftMth, rightMth, ref leftText, ref rightText);

                leftDiffBuffer  = new StringBuilder();
                rightDiffBuffer = new StringBuilder();
                var simpleDiff = new SimpleDiff <string>(leftText.Split('\n'), rightText.Split('\n'));
                simpleDiff.LineUpdate += new EventHandler <DiffEventArgs <string> >(ElementDiff_LineUpdate);
                simpleDiff.RunDiff();

                leftText  = leftDiffBuffer.ToString();
                rightText = rightDiffBuffer.ToString();

                selectedMethod = rightMth;
                leftDiffBuffer.Clear();
                rightDiffBuffer.Clear();
                break;

            case 'C':
                rightMth = reader.readMethodDiffDetail(mth.guid, "R");
                DiffPresenter.getMonoMethodDesc(rightMth, ref rightText);

                selectedMethod = rightMth;
                break;

            case 'D':
                leftMth = reader.readMethodDiffDetail(mth.guid, "L");
                DiffPresenter.getMonoMethodDesc(leftMth, ref leftText);

                selectedMethod = leftMth;
                break;

            default:
                break;
            }

            longerLine = getLongerLine(leftText, rightText);

            setListItems(listL, leftText);
            setListItems(listR, rightText);
            setListBoxSize(listL, leftText, longerLine);
            setListBoxSize(listR, rightText, longerLine);

            if (mth.changed == 'D' || mth.changed == 'U')
            {
                listL.Tag = leftMth;
                listL.ContextMenuStrip = contextMenuStrip1;
                listL.Click           += new System.EventHandler(this.MethodListClick);
                //					listL.Click += new System.EventHandler(this.MethodTextClick);
            }

            if (mth.changed == 'C' || mth.changed == 'U')
            {
                listR.Tag = rightMth;
                listR.ContextMenuStrip = contextMenuStrip1;
                listR.Click           += new System.EventHandler(this.MethodListClick);
                //					listR.Click += new System.EventHandler(this.MethodTextClick);
            }

            tableLayoutPanel1.Controls.Add(listL, 0, rowIndex);
            tableLayoutPanel1.Controls.Add(listR, 1, rowIndex);

            return;
        }
コード例 #2
0
        private void addElementLabels(ElementVO elem)
        {
            int         rowIndex = 0;
            string      leftText, rightText;
            int         longerLine;
            AttributeVO leftAttr, rightAttr;
            MethodVO    leftMth, rightMth;

            string            artifactsDir = ProjectSetting.getVO().projectPath + "\\" + ProjectSetting.getVO().artifactsPath;
            ArtifactXmlReader reader       = new ArtifactXmlReader(artifactsDir);

            tableLayoutPanel1.RowCount = elem.attributes.Count + elem.methods.Count;

            foreach (AttributeVO a in elem.attributes)
            {
                leftAttr  = a;
                rightAttr = a;
                leftText  = "";
                rightText = "";

//				TextBox txtL = new TextBox();
//	            txtL.BackColor = Color.LightCyan;
//
//				TextBox txtR = new TextBox();
//	            txtR.BackColor = Color.LightYellow;

                ListBox listL = new ListBox();
                listL.DrawMode = DrawMode.OwnerDrawFixed;
                // EventHandlerの追加
                listL.DrawItem += new DrawItemEventHandler(ListBox_DrawItem);

                ListBox listR = new ListBox();
                listR.DrawMode = DrawMode.OwnerDrawFixed;
                // EventHandlerの追加
                listR.DrawItem += new DrawItemEventHandler(ListBox_DrawItem);

                switch (a.changed)
                {
                case 'U':
                    leftAttr  = reader.readAttributeDiffDetail(a.guid, "L");
                    rightAttr = reader.readAttributeDiffDetail(a.guid, "R");
                    getDisagreedAttributeDesc(leftAttr, rightAttr, ref leftText, ref rightText);

                    break;

                case 'C':
                    rightAttr = reader.readAttributeDiffDetail(a.guid, "R");
                    getMonoAttributeDesc(rightAttr, ref rightText);
                    break;

                case 'D':
                    leftAttr = reader.readAttributeDiffDetail(a.guid, "L");
                    getMonoAttributeDesc(leftAttr, ref leftText);
                    break;

                default:
                    break;
                }

                longerLine = getLongerLine(leftText, rightText);

                setListItems(listL, leftText);
                setListItems(listR, rightText);
                setListBoxSize(listL, leftText, longerLine);
                setListBoxSize(listR, rightText, longerLine);

//				txtR.Text = rightText;
//				txtL.Text = leftText;
//	            setTextBoxSize(txtL, leftText, longerLine);
//				setTextBoxSize(txtR, rightText, longerLine);

                if (a.changed == 'D' || a.changed == 'U')
                {
                    listL.Tag = leftAttr;
                    listL.ContextMenuStrip = contextMenuStrip1;
                    listL.Click           += new System.EventHandler(this.AttributeListClick);
//					listL.Click += new System.EventHandler(this.AttributeTextClick);
                }

                if (a.changed == 'C' || a.changed == 'U')
                {
                    listR.Tag = rightAttr;
                    listR.ContextMenuStrip = contextMenuStrip1;
                    listR.Click           += new System.EventHandler(this.AttributeListClick);
//					listR.Click += new System.EventHandler(this.AttributeTextClick);
                }

                tableLayoutPanel1.Controls.Add(listL, 0, rowIndex);
                tableLayoutPanel1.Controls.Add(listR, 1, rowIndex);

                rowIndex++;
            }


            foreach (MethodVO m in elem.methods)
            {
                leftMth  = m;
                rightMth = m;

                leftText  = "";
                rightText = "";

//				TextBox txtL = new TextBox();
//	            txtL.BackColor = Color.White;
//
//				TextBox txtR = new TextBox();
//	            txtR.BackColor = Color.White;

                ListBox listL = new ListBox();
                listL.DrawMode = DrawMode.OwnerDrawFixed;
                // EventHandlerの追加
                listL.DrawItem += new DrawItemEventHandler(ListBox_DrawItem);

                ListBox listR = new ListBox();
                listR.DrawMode = DrawMode.OwnerDrawFixed;
                // EventHandlerの追加
                listR.DrawItem += new DrawItemEventHandler(ListBox_DrawItem);


                switch (m.changed)
                {
                case 'U':
                    leftMth  = reader.readMethodDiffDetail(m.guid, "L");
                    rightMth = reader.readMethodDiffDetail(m.guid, "R");
                    getDisagreedMethodDesc(leftMth, rightMth, ref leftText, ref rightText);

                    leftDiffBuffer  = new StringBuilder();
                    rightDiffBuffer = new StringBuilder();
                    var simpleDiff = new SimpleDiff <string>(leftText.Split('\n'), rightText.Split('\n'));
                    simpleDiff.LineUpdate += new EventHandler <DiffEventArgs <string> > (ElementDiff_LineUpdate);
                    simpleDiff.RunDiff();

                    leftText  = leftDiffBuffer.ToString();
                    rightText = rightDiffBuffer.ToString();
                    leftDiffBuffer.Clear();
                    rightDiffBuffer.Clear();
                    break;

                case 'C':
                    rightMth = reader.readMethodDiffDetail(m.guid, "R");
                    getMonoMethodDesc(rightMth, ref rightText);
                    break;

                case 'D':
                    leftMth = reader.readMethodDiffDetail(m.guid, "L");
                    getMonoMethodDesc(leftMth, ref leftText);
                    break;

                default:
                    break;
                }

                longerLine = getLongerLine(leftText, rightText);

                setListItems(listL, leftText);
                setListItems(listR, rightText);
                setListBoxSize(listL, leftText, longerLine);
                setListBoxSize(listR, rightText, longerLine);


//				txtL.Text = leftText;
//				txtR.Text = rightText;
//	            setTextBoxSize(txtL, leftText, longerLine);
//				setTextBoxSize(txtR, rightText, longerLine);

                if (m.changed == 'D' || m.changed == 'U')
                {
                    listL.Tag = leftMth;
                    listL.ContextMenuStrip = contextMenuStrip1;
                    listL.Click           += new System.EventHandler(this.MethodListClick);
//					listL.Click += new System.EventHandler(this.MethodTextClick);
                }

                if (m.changed == 'C' || m.changed == 'U')
                {
                    listR.Tag = rightMth;
                    listR.ContextMenuStrip = contextMenuStrip1;
                    listR.Click           += new System.EventHandler(this.MethodListClick);
//					listR.Click += new System.EventHandler(this.MethodTextClick);
                }

                tableLayoutPanel1.Controls.Add(listL, 0, rowIndex);
                tableLayoutPanel1.Controls.Add(listR, 1, rowIndex);

                rowIndex++;
            }
        }