Accessing Swing Component from Transformation Menu

Dear Community,

I am trying to access a panel (i.e., Jcomponent) from the editor that I created by putting a code in the editor (i.e., Swing Component).

component provider: (node, editorContext)->JComponent {
   
  model flowModel = model/FlowModel/ in global repository;
  final sequence<node<State>> states = flowModel.roots(FlowData).stateLists;
   
  JFrame frame = new JFrame();
   
  JPanel panel = new JPanel();
  panel.setName("This is Demo Panel");
  panel.setLayout(new BorderLayout());
   
  final DefaultTableModel model = new DefaultTableModel();
  JTable table = new JTable(model);
   
  model.addColumn("State Number");
  model.addColumn("State Name");
  model.addColumn("Status");
   
  int stateItr = 0;
  foreach state in states {
    stateItr++;
    model.addRow(new Object[]{"State-" + stateItr, state.text, false});
  }
      
 
  JScrollPane scrollPane = new JScrollPane(table);
   
  panel.add(scrollPane, BorderLayout.CENTER);
   
  frame.getContentPane().add(panel);
   
  frame.pack();
   
  return panel;
}

 

I have to write some code in the transformation menu execute part to access the panel.

I have started by getting a model from the repository

action
  text (editorContext, node, model, pattern)->string {
    model dataModel = model/FlowModel/ in global repository;
    dataModel.roots(FlowData).first.stateLists.get(lastSuccessfulState).text;
  }
  can execute <always>
  execute (editorContext, node, model, pattern)->void {
    model dataModel = model/FlowModel/ in global repository;
    
    // ModelAccess = editorContext.getRepository().getModelAccess();
     
    editorContext.getRepository();

    model editorModel = model/org.iets3.flow.dashboard.editor/ in global repository;
     
    System.out.println(editorModel.nodes(QueryFunction_JComponent));
     
    node<CellModel_JComponent> cmjc = editorModel.nodes(CellModel_JComponent).first;
     
    System.out.println("This component that is returned is------------------------------------->" + editorModel.nodes(CellModel_JComponent));
     
    node<QueryFunction_JComponent> jComponent = cmjc.componentProvider;
    // JComponent component = jComponent as JComponent;
     
    // node<> node1 = jComponent.getExpectedRetType();
    // JPanel jPanel = node1 as JPanel;
     
    System.out.println("This component that is returned is------------------------------------->" + cmjc.componentProvider);
     
  }

I am so far unable to access the panel that is returned from the swing component in order to manipulate it. How can I do it? I look forward to your kind help.

Best,

Saad

0

Please sign in to leave a comment.