package context.apps.demos.homeactivity; import java.awt.BorderLayout; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JPanel; import context.arch.discoverer.Discoverer; import context.arch.intelligibility.Explanation; import context.arch.intelligibility.presenters.Presenter; import context.arch.intelligibility.query.Query; public class HomeApplication extends JFrame { static final long serialVersionUID = -1719370727845915424L; HomeModel contextModel; HomeEvidencePanel evidencePanel; SimpleHomeQueryPanel homeQueryPanel; private TimeStepPanel timeStepPanel; Presenter<Void> presenter; public HomeApplication() { super("Intelligibility - Home"); /* * Context modeling */ contextModel = new HomeModel(); presenter = new Presenter<Void>(contextModel.activityEnactor) { @Override public Void render(Explanation explanation) { Query query = explanation.getQuery(); if (query == null) { return null; } String question = query.getQuestion(); if (question == null) { return null; } evidencePanel.presenter.render(explanation); return null; } }; evidencePanel = new HomeEvidencePanel(contextModel); // scenario choosing done by TimelinePanel in HomePanel evidencePanel.setBorder(BorderFactory.createEtchedBorder()); add(evidencePanel, BorderLayout.CENTER); JPanel topPanel = new JPanel(); topPanel.setLayout(new BorderLayout()); homeQueryPanel = new SimpleHomeQueryPanel(this); topPanel.add(homeQueryPanel, BorderLayout.CENTER); timeStepPanel = new TimeStepPanel(this); // contextModel.setEnactorsReadyListener(timeStepPanel); topPanel.add(timeStepPanel, BorderLayout.EAST); add(topPanel, BorderLayout.NORTH); /* * JFrame settings */ pack(); // setExtendedState(JFrame.MAXIMIZED_BOTH); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { Discoverer.start(); HomeApplication f = new HomeApplication(); f.setVisible(true); } }