Thread Rating:
  • 434 Vote(s) - 2.86 Average
  • 1
  • 2
  • 3
  • 4
  • 5
標準の右クリックメニューから一部機能を削除
03-04-2014, 04:04 PM,
#5
RE: 標準の右クリックメニューから一部機能を削除
自分のメニューのラベルから判断する方法がありそうです。
出来ればもっと厳密にやりたいところですが・・・。

Code:
{define-class public AppRecordGridUI {inherits StandardRecordGridUI}
  field protected menu-for-read-only:StringArray =
      {StringArray
          ||非活性にするメニュー
        "昇順ソート",
        "降順ソート",
        "フィルタを取り除く",
        "のみのフィルタ",
        "以下のフィルタ",
        "以上のフィルタ",
        "以外のフィルタ",
        "貼り付け領域",
        "行の固定",
        "を解除",
        "フレームの固定"
||--        ,"貼り付け",
||--        "コピー",
||--        "列の固定"
      }

  field protected menu-for-remove:StringArray =
      {StringArray
        "変更をコミットする",
        "変更を戻す"
      }


  {method public {context-menu-at x:Distance, y:Distance}:#MenuPane
    let menu-pane:#MenuPane = {super.context-menu-at x, y}

    ||メニュー削除用の保持配列
    def delete-menu = {{Array-of MenuAction}}

    ||入力用・表示用のグリッドにあわせてメニューを変更する
    {if-non-null menu-pane then
        {for i:int = 0  below menu-pane.size do

            def menu =  {menu-pane.get i}

            {type-switch menu
             case action:MenuAction do
                def label-string:String = {action.label.get-text}

                ||非活性にしたいラベルの文字列が見つかったら
                ||その MenuAction を無効にする
                {for label in self.menu-for-read-only do
                    {if {label-string.find-string label} > -1 then
                        set action.enabled? = false
                    }
                }

                ||削除したいラベルの文字列が見つかったら
                ||その MenuAction を削除用配列に保持にする
                {for label in self.menu-for-remove do
                    {if {label-string.find-string label} > -1 then
                        {delete-menu.append action}
                    }
                }
            }
        }
    }

    ||削除用配列のメニューを削除する
    {for ma in delete-menu do
        {menu-pane.remove ma}
    }
    {return menu-pane}
  }
}

{let people:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField "First", domain = String},
            {RecordField "Last", domain = String},
            {RecordField "Age", domain = int}
        },
        {RecordData First = "John", Last = "Smith", Age = 25},
        {RecordData First = "Jane", Last = "Smith", Age = 29},
        {RecordData First = "Jane", Last = "Jones", Age = 28}
    }
}
{value
    {RecordGrid
        record-source = people,
        ui-object = {AppRecordGridUI}
    }
}


Messages In This Thread
RE: 標準の右クリックメニューから一部機能を削除 - by umemura - 03-04-2014, 04:04 PM
Forum Jump:


Users browsing this thread:
4 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('493')