0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[ODC]External Logicの属性いろいろ

Posted at

ODCでC#を取り込んでみる(External Logic)の関連。

Forgeにコンポーネントをアップロードしようと思っていくつか確認してみたことを記録(主に属性)。

環境情報

ODC Studio(Version 1.3.9)
Visual Studio Code(Version 1.85.1)

属性のパラメータには日本語が使える

以下の属性のパラメータに日本語を使ってみたところ、全て問題なく動いた。

  • OSInterfaceのDescription
  • OSActionのDescriptionとReturnDescription
  • OSParameterのDescription
  • OSStructureのDescription
  • OSStructureFieldのDescription
[OSInterface(Description = "和暦を扱うActionを提供する/This External Logic provides Actions to handle Japanese Calendar (Japanese Era) ", 

と設定した場合、ODC Studio上で対応する要素にも、想定通りに日本語が表示される。
image.png

戻り値のDescription

Actionの戻り値にDescriptionを指定するには、以下の2行目のように、ReturnDescriptionに設定する。

[OSAction(Description = "日を渡して、和暦形式に変換する/Converts input date to text in Japanese calendar format.",
          ReturnName = "FormattedText", ReturnDescription = "元号を利用して表した日付(日本語)")]

結果は、以下の通り。
image.png

OSParameter(ActionのInput Parameterにつける属性)の指定方法

OSParameterAttributeは、対象となる、メソッドのパラメータの直前に指定する。
以下のコード例の2,4,6行目を参照。

public string FormatDateAsJapaneseCalendar(
        [OSParameter(Description = "和暦に変換する日/Date Time value to be converted into Japanese calendar format.")]
        DateTime OriginalDate,
        [OSParameter(Description = "Trueのとき、各元号の1年目を「元年」(「1年」ではなく)として扱う/If true, the first year in the era will be converted into '元年' instead of '1年'.")]
        bool TreatFirstYearSpecially = false, 
        [OSParameter(Description = "Trueのとき、文字列化した年月の数字部分を全角で表現する/If true, numeric parts of stringfied Date will be expressed in full-width characters.")]
        bool MakeNumbersFullWidth = false);

2行目のOriginalDateに付与したDescriptionは想定通り表示された。
image.png

External Logicのアイコン指定

OSInterfaceAttributeのIconResourceName propertyが使える。

上記のリンクの説明によると

Defines the name of the embedded resource containing the icon for the corresponding External Library.

とあり、アイコンとして利用する画像をExternal Logicに埋め込む必要がある。
まず、以下のように画像ファイルをWorkspace下に画像ファイル(Resources/JapaneseCalendar.png)を用意する。
image.png

C#のアプリケーションにリソースを埋め込み、利用するに記載がある通り、.csprojファイルに以下の設定をすることで、用意した画像を埋め込める。ItemGroup/EmbeddedResourceタグのIncludeに用意した画像ファイルのパスを設定。

  <ItemGroup>
    <None Update="Library\license.txt">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <EmbeddedResource Include="Resources/JapaneseCalendar.png" />
  </ItemGroup>

OSInterface属性のIconResourceNameパラメータに画像ファイルを指定。(Workspace名.フォルダ名.ファイル名)

[OSInterface(Description = "和暦を扱うActionを提供する/This External Logic provides Actions to handle Japanese Calendar (Japanese Era) ", 
             IconResourceName = "JapaneseCalendarODC.Resources.JapaneseCalendar.png")]

以下は、ODC Portal上でExternal Logicを開いたところ。
アイコン画像が設定されていることが確認できる。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?