从状态图到状态表
答
是的,有可能以表格格式查看状态图。 您需要将状态图属性 StatechartDiagram::StateDiagram::DefaultView
更改为Tabular view
。
此功能自Rhapsody V7.5起可用。
详情:here
+0
如何将'TabulawView'导出到某种'.txt'文件? 'Reporter/ReporterPLUS'没有这个选项(它不会导出表格本身,我只有'定型/对象模型图/组件信息' –
+0
@MariusMarusanici您可以打印它为'.pdf'。我不熟悉记者,也许你应该问一个新问题。 – sergej
答
可以利用的Rhapsody Java API和编写一段代码来获得任何给定的状态图的元素的细节。 提供Creating a table matrix for statechart elements的示例代码。
import com.telelogic.rhapsody.core.IRPApplication;
import com.telelogic.rhapsody.core.IRPModelElement;
import com.telelogic.rhapsody.core.IRPProject;
import com.telelogic.rhapsody.core.IRPStateVertex;
import com.telelogic.rhapsody.core.IRPStatechart;
import com.telelogic.rhapsody.core.IRPTransition;
import com.telelogic.rhapsody.core.RhapsodyAppServer;
public class Statechart_Info
{
public static void main(String[] args)
{
IRPApplication app = RhapsodyAppServer.getActiveRhapsodyApplication();
IRPProject prj = app.activeProject();
IRPModelElement moEle = app.getSelectedElement();
IRPStatechart mySC = (IRPStatechart) moEle;
String defTran=null;
for (Object obj : mySC.getNestedElementsRecursive().toList())
{
if(obj instanceof IRPTransition)
{
IRPTransition myTran = (IRPTransition) obj;
if(myTran.isDefaultTransition()==1)
defTran = myTran.getName();
}
}
for (Object obj : mySC.getNestedElementsRecursive().toList())
{
if(obj instanceof IRPStateVertex)
{
IRPStateVertex mySV = (IRPStateVertex) obj;
System.out.println("State: " + mySV.getName());
System.out.println("\nIncoming Transition(s) to " + mySV.getName());
for(Object obj1 : mySV.getInTransitions().toList())
{
IRPTransition myTran = (IRPTransition) obj1;
System.out.println("Transition: " + myTran.getName());
}
System.out.println("\nOutgoing Transition(s) from " + mySV.getName());
for(Object obj1 : mySV.getOutTransitions().toList())
{
IRPTransition myTran = (IRPTransition) obj1;
System.out.println("Transition: " + myTran.getName());
}
if(mySV.getName().equals("ROOT"))
System.out.println("Transition: " + defTran);
System.out.println("\n");
}
}
}
}
为什么downvote? –