Ejemplo n.º 1
0
        /*-------------------------------------------------------------------------
         *
         * ---------------------------------------------------------------------------*/
        public sea_routes_form2(gvt_lib lib, GvoDatabase db)
        {
            m_lib = lib;
            m_db  = db;

            InitializeComponent();

            Useful.SetFontMeiryo(this, def.MEIRYO_POINT);

            m_disable_update_select = false;

            // tooltip
            toolTip1.AutoPopDelay = 30 * 1000;                                  // 30秒表示
            toolTip1.BackColor    = Color.LightYellow;

            // ViewとDBを関連付けておく
            m_view1 = new list_view_db(listView1, m_db.SeaRoute.searoutes);
            m_view2 = new list_view_db(listView2, m_db.SeaRoute.favorite_sea_routes);
            m_view3 = new list_view_db(listView3, m_db.SeaRoute.trash_sea_routes);

            // 各ページの初期化
            init_page1();
            init_page2();
            init_page3();
        }
Ejemplo n.º 2
0
 /*-------------------------------------------------------------------------
  * 全て選択状態にする
  * sub
  * ---------------------------------------------------------------------------*/
 private void select_all(list_view_db view)
 {
     m_disable_update_select = true;
     for (int i = 0; i < view.db.Count; i++)
     {
         view.view.SelectedIndices.Add(i);
     }
     m_disable_update_select = false;
     selected_index_changed(view);
 }
Ejemplo n.º 3
0
 /*-------------------------------------------------------------------------
  * 項目の設定
  * ---------------------------------------------------------------------------*/
 private void set_item(list_view_db view, RetrieveVirtualItemEventArgs e)
 {
     SeaRoutes.Voyage ii = get_route(view.db, e.ItemIndex);
     if (ii == null)
     {
         ListViewItem item = new ListViewItem("---", 0);
         item.SubItems.Add("---");
         item.SubItems.Add("---");
         item.SubItems.Add("---");
         item.SubItems.Add("---");
         e.Item = item;
     }
     else
     {
         e.Item = create_item(ii, view != m_view3);
     }
 }
Ejemplo n.º 4
0
        /*-------------------------------------------------------------------------
         * 航路一覧が選択された
         * sub
         * ---------------------------------------------------------------------------*/
        private void selected_index_changed(list_view_db view)
        {
            if (m_disable_update_select)
            {
                return;
            }

            // 選択状態をリセットする
            m_db.SeaRoute.ResetSelectFlag();

            if (view.view.SelectedIndices.Count < 1)
            {
                return;
            }

            // 最初の項目をセンタリングする
            SeaRoutes.Voyage i = get_route(view.db, view.view.SelectedIndices[0]);
            if (i != null)
            {
                if (i.GamePoint1st.X < 0)
                {
                    return;
                }
                if (i.GamePoint1st.Y < 0)
                {
                    return;
                }
                m_lib.setting.centering_gpos = i.GamePoint1st;
                m_lib.setting.req_centering_gpos.Request();
            }

            // 選択状態にする
            foreach (int index in view.view.SelectedIndices)
            {
                SeaRoutes.Voyage ii = get_route(view.db, index);
                if (ii == null)
                {
                    continue;
                }
                ii.IsSelected = true;
            }
        }
Ejemplo n.º 5
0
        /*-------------------------------------------------------------------------
         * リストの数を更新する
         * 一番上に表示されていたアイテムを描画範囲内にスクロールさせる機能付き
         * ---------------------------------------------------------------------------*/
        private void update_list_count(list_view_db view)
        {
            ListViewItem item  = view.view.TopItem;
            int          index = -1;

            if (item != null)
            {
                index = item.Index;
            }

            // 一番下までスクロールした状態で項目数を減らすと例外がでる
            // ListViewのバグ?
            view.view.VirtualListSize = 0;                                      // 例外対策
            view.view.VirtualListSize = view.db.Count;                          // 新しい項目数

/*			// 見える位置にスクロールさせる
 *                      if(   (view.view.Items.Count > 0)
 *                              &&(Index > 0) ){
 *                              // 一度一番下までスクロールさせる
 *                              view.view.EnsureVisible(view.view.Items.Count - 1);
 *                              // 目的のアイテムを一番上にする
 *                              // 一番上が無理なら適当な位置にスクロールする
 *                              view.view.EnsureVisible(Index);
 *                      }
 */

/*			int Count	= m_view1.view.Items.Count;
 *                      if(Count > 0){
 *                              Rectangle	rect	= view.view.GetItemRect(Count - 1);	// もっとも新しいアイテムのRect
 *                              view.view.Invalidate(view.view.RectangleToScreen(rect));
 *                      }
 */
            // 一番下が見える位置にスクロールさせる
            // 一番下の情報が最新のもの
            if (view.view.Items.Count > 0)
            {
                // 一度一番下までスクロールさせる
                view.view.EnsureVisible(view.view.Items.Count - 1);
            }
        }
Ejemplo n.º 6
0
        /*-------------------------------------------------------------------------
         * 목록の수を업데이트する
         * 一番상に표시されていた아이템を그리기범위내にスクロールさせる기능付き
         * ---------------------------------------------------------------------------*/
        private void update_list_count(list_view_db view)
        {
            ListViewItem item  = view.view.TopItem;
            int          index = -1;

            if (item != null)
            {
                index = item.Index;
            }

            // 一番下までスクロールした상태で항목수を減らすと例외がでる
            // ListViewのバグ?
            view.view.VirtualListSize = 0;                          // 例외対策
            view.view.VirtualListSize = view.db.Count;              // 新しい항목수

            /*			// 見える위치にスクロールさせる
             *                      if(   (view.view.Items.Count > 0)
             *                              &&(Index > 0) ){
             *                              // 一도一番下までスクロールさせる
             *                              view.view.EnsureVisible(view.view.Items.Count - 1);
             *                              // 目的の아이템を一番상にする
             *                              // 一番상が무리なら적당な위치にスクロールする
             *                              view.view.EnsureVisible(Index);
             *                      }
             */

            /*			int Count	= m_view1.view.Items.Count;
             *                      if(Count > 0){
             *                              Rectangle	rect	= view.view.GetItemRect(Count - 1);	// もっとも新しい아이템のRect
             *                              view.view.Invalidate(view.view.RectangleToScreen(rect));
             *                      }
             */
            // 一番下が見える위치にスクロールさせる
            // 一番下の정보が최신のもの
            if (view.view.Items.Count > 0)
            {
                // 一도一番下までスクロールさせる
                view.view.EnsureVisible(view.view.Items.Count - 1);
            }
        }
Ejemplo n.º 7
0
        /*-------------------------------------------------------------------------
         * 表示、非表示
         * sub
         * ---------------------------------------------------------------------------*/
        private void set_draw_flag(list_view_db view, bool is_show)
        {
            // 選択状態をリセットする
            m_db.SeaRoute.ResetSelectFlag();

            if (view.view.SelectedIndices.Count < 1)
            {
                return;
            }

            m_disable_update_select = true;
            foreach (int index in view.view.SelectedIndices)
            {
                SeaRoutes.Voyage ii = get_route(view.db, index);
                if (ii == null)
                {
                    continue;
                }
                ii.IsEnableDraw = is_show;
            }
            m_disable_update_select = false;
        }
Ejemplo n.º 8
0
        /*-------------------------------------------------------------------------
         * 選択されている航路図リストを得る
         * リストがないときはnullを返す
         * ---------------------------------------------------------------------------*/
        private List <SeaRoutes.Voyage> get_selected_routes_list(list_view_db view)
        {
            if (view.view.SelectedIndices.Count < 1)
            {
                return(null);
            }

            List <SeaRoutes.Voyage> list = new List <SeaRoutes.Voyage>();

            foreach (int index in view.view.SelectedIndices)
            {
                SeaRoutes.Voyage ii = get_route(view.db, index);
                if (ii == null)
                {
                    continue;
                }
                list.Add(ii);
            }
            if (list.Count <= 0)
            {
                return(null);
            }
            return(list);
        }