掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     インターフェースの表示


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2008-2-25 12:07

インターフェースの表示

いつもお世話になっています。

インターフェースは普通、
virtual ~ =0;
で宣言されている関数のみを含むと思いますが、弊社のプログラムでは、コンストラクタ等の宣言もしています。
その状態ではプロジェクトブラウザ上での要素の表示がクラスと同様となってしまうので出来れば要素の表示をインターフェースの形としたいのですが可能でしょうか?
可能であればその方法を教えてください。
sugimoto
投稿日時: 2008-2-25 13:11
EA Administrator
投稿: 1895

Re: インターフェースの表示

こちらはインタフェース要素であるにも関わらず、プロジェクト
ブラウザ上のアイコンがクラス要素のアイコンになっているとの
ご質問でしょうか?

その場合、該当の要素を選択し、メインメニュー→「要素」→
「追加設定」→「種類を変更」にてインターフェースを設定してください。

ご確認のほど、よろしくお願いいたします。


なお、補足になりますが、ソースコード読み込みの際、Javaなど
であればクラスの定義からインタフェース要素であることが
分かりますが、インタフェースかどうか明確でない場合は、
クラス要素として扱われる場合もございます。ご了承ください。
未登録ゲスト
投稿日時: 2008-2-25 21:29

Re: インターフェースの表示

回答いただいた要素の変更については了解です。

「インタフェースかどうか明確でない場合は、クラス要素として扱われる場合もございます」とありますが、
たとえばvartual~=0以外のメソッドが含まれたクラスをインターフェース要素で表示することは不可能ということですよね。

であればクラス要素の中で、特定のクラスに別アイコンを表示させることは可能でしょうか。
もし可能であればその方法を教えていただけないでしょうか。

よろしくお願いいたします。
sugimoto
投稿日時: 2008-2-26 10:12
EA Administrator
投稿: 1895

Re: インターフェースの表示

引用:

「インタフェースかどうか明確でない場合は、クラス要素として扱われる場合もございます」とありますが、
たとえばvartual~=0以外のメソッドが含まれたクラスをインターフェース要素で表示することは不可能ということですよね。


前回の回答では、ソースコード読み込みにおけるEAの動作を補足
させていただきました。

Javaであればインターフェースの記述として、public interface (名前){}
のように明確ですので、ソースコード読み込みをした際は、EAは
インタフェースとして要素を生成します。
C++などのクラス宣言では、Javaのようにインターフェースである
ことが明確ではないので、インタフェースとして要素が生成され
ない旨を補足として説明させていただきました。
なお、EAはvirtual~=0があるかどうかは、ソースコード読み込み
の場合は判断しておりません。

補足の説明が分かりにくく申し訳ございませんでした。

ただ、前回の回答にありますように、要素の種類を変更することで、
インターフェース要素として表示することは可能です。

引用:

であればクラス要素の中で、特定のクラスに別アイコンを表示させることは可能でしょうか。
もし可能であればその方法を教えていただけないでしょうか。


当初のご質問では、プロジェクトブラウザ上の表示を変えたいと
いうことでしたので、要素の種類をインターフェースに変更する
ことをご紹介させていただきました。種類を変更することにより、
インターフェース要素のアイコンに変わったかと思います。

今回のご質問であるこの別アイコンというのは、ダイアグラム上
の表示も変更したいということでしょうか?

現状、インターフェース要素であることを示すステレオタイプ
<<interface>>は表示されているが、それ以外にも別の表示を
したいというご質問でしょうか?

恐れ入りますが、ご質問の詳細を教えていただけますと助かります。
未登録ゲスト
投稿日時: 2008-2-26 15:46

Re: インターフェースの表示

質問がわかりにくくて申し訳ありません。

やりたいことはインターフェース要素の表示をクラス要素の表示と別のアイコンにしたいのです。
出来ればインターフェース要素での表示が一番なのですが、こちらのソースコードの関係上、pure以外のメソッドも含まれるためどうしてもインターフェース要素での設定でメソッドを作成することが出来ず、今はクラス要素の設定としています。(インターフェース要素の設定で、pureのチェックをはずそうとしても出来ないため。)

プロジェクトブラウザ上でのインターフェースとクラスの区別は現在、ステレオタイプ<<interface>>の表示の違いだけとなってますが、インターフェースのアイコン表示を変えることが出来ないかと思いご質問しています。
sugimoto
投稿日時: 2008-2-26 17:45
EA Administrator
投稿: 1895

Re: インターフェースの表示

回答が遅くなってしまい、申し訳ございません。

詳細な情報をお寄せいただき、ありがとうございます。

引用:

やりたいことはインターフェース要素の表示をクラス要素の表示と別のアイコンにしたいのです。
出来ればインターフェース要素での表示が一番なのですが、こちらのソースコードの関係上、pure以外のメソッドも含まれるためどうしてもインターフェース要素での設定でメソッドを作成することが出来ず、今はクラス要素の設定としています。(インターフェース要素の設定で、pureのチェックをはずそうとしても出来ないため。)


こちらはソースコード生成時にvirtual~=0を付加したくない場合にも、
インターフェース要素を利用すると、現状はpureチェックボックスを
無効にできないため、virtual~=0が付加されてしまうということで
認識は合っていますでしょうか?

その場合のご提案としまして、要素としてはインタフェース要素を利用し、
コード生成テンプレートを編集するという方法をご紹介いたします。

例えば、インターフェース要素のメソッドに、あるステレオタイプが
設定されている場合は、virtual~=0を出力しないようにカスタマイズ
することは可能です。

この場合、コード生成テンプレートのOperation Declarationにおける
一部分を編集することで対応できます。

例)
デフォルトのテンプレートで、以下のようになっている箇所で、
if文の条件にステレオタイプの条件を増やす。
%if opPure=="T"%
=0;
%endTemplate%

%if opPure=="T" and opStereotype!="notPure"%
=0;
%endTemplate%

この場合、要素はインターフェースのアイコンで表示され、
ソースコード生成時は、操作によっては、virtual~=0を
出力しないように対応できます。


上記内容で、御社ご質問の回答になっておりますでしょうか?

お手数お掛けしており申し訳ございませんが、
ご確認のほど、よろしくお願いいたします。
未登録ゲスト
投稿日時: 2008-3-10 17:43

Re: インターフェースの表示

ご回答ありがとうございました。
回答にあります方法とは別に、
インターフェースをクラスの要素で作成し、ステレオタイプの設定でインターフェースだったらプロジェクトブラウザ内の要素とダイヤグラム内の要素のアイコンを変更することは可能ですか?
例えでステレオタイプをインターフェースとしています。
新しい要素のアイコンをステレオタイプの変更で作成する方法があれば教えてください。
よろしくお願いいたします。
sugimoto
投稿日時: 2008-3-11 10:10
EA Administrator
投稿: 1895

Re: インターフェースの表示

ステレオタイプの設定値によって、ダイアグラム上の要素の形を
変えることはUMLプロファイルの利用により実現可能ですが、
プロジェクトブラウザにつきましては、現状、ステレオタイプ
の設定によって、動的にアイコンを変更することはできません。

プロジェクトブラウザには、要素の種類に応じたアイコンが
表示されるようになっております。

ご要望にお応えすることができず、申し訳ございません。
未登録ゲスト
投稿日時: 2008-3-11 14:50

Re: インターフェースの表示

了解しました。
ダイアグラム上の要素を新規作成しているのですが
インターフェースのような表示をさせるために下記の要領で
描画のサンプルを作ってみたのですが文字の表示を
センターにして大文字の斜体とするにはどうしたら
よいでしょうか。

shape main
{
ellipse(0, 0, 48, -60);

// setpenwidth(2);
// setorigin("CENTER", 48, 0);
addsubshape("moji", 48, 30);
shape moji
{
h_align = "center";
print("#name#");
}
}

途中、コメントにしているのは
setpenwidth・・・描画する線の太さを1から5の間で指定
setorigin・・・文字列を描画する位置を指定
とあったので試してみたのですが反映されませんでした。

よろしくお願いいたします。
sugimoto
投稿日時: 2008-3-11 15:36
EA Administrator
投稿: 1895

Re: インターフェースの表示

setpenwidthにつきましては、図を描画する前に呼びますので、
ellipseよりも上の行に移動することで、ご確認いただけるかと思います。

文字につきましては、大文字の斜体という設定は、描画スクリプト
では指定できません。ご了承ください。

文字をセンターに表示するとのことですが、現在作成されている形の
全体像や、すでに記述されているellipseと全体像の関係が分かり
兼ねており、どこを中心として文字を表示されるのかによって、
スクリプトも変わってきますので、もう少し情報をいただけますと
助かります。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ