読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

Shinjyuku(Shibuya).trac 勉強会第4回 番外編1・内職

Trac C#

スイマセン、id:kompiro さんの発表を聞いて思い立ち内職してました^^;
発表にあった要領でローカルで Wiki の編集ができるようなツール
Wiki ページの取得はハードコーディングですが変更したページの更新はできます(笑)
#こういうの使ってなんかアイデアある??
あと、C#wysiwyg を使えるコンポーネントってないですか??

見た目はこんなカンジ


コードはこんなカンジ

この前の XML-RPC クライアントを使うと結構簡単に実装で来たりします:)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BTS.Trac;

namespace Test
{
    public partial class Form1 : Form
    {
        Wiki wiki = null;

        public Form1()
        {
            InitializeComponent();

            try {
                Trac.Connect( "http://cf-r5:8080/trac/SampleProject", "kaorun", "kaorun" );

                wiki = new Wiki( "WikiStart" );
                string text = wiki.Get();
                textBoxTracWiki.Text = text.Replace( "\n", "\r\n" );
            }
            finally {
            }
        }

        private void tabWiki_SelectedIndexChanged( object sender, EventArgs e )
        {
            try {
                TabControl tab = sender as TabControl;
                if ( (tab != null) && (tab.SelectedIndex == 1) ) {
                    string text = textBoxTracWiki.Text;
                    webPreview.DocumentText = Wiki.WikiToHtml( text.Replace( "\r\n", "\n" ) );
                }
            }
            finally {
            }
        }

        private void buttonUpdate_Click( object sender, EventArgs e )
        {
            wiki.Update( textBoxTracWiki.Text.Replace( "\r\n", "\n" ) );
        }
    }
}