public Context getContext() { return HomeApplication.getInstance().getApplicationContext(); }
@Override public void actionPerformed(ActionEvent evt) { viewer.evidencePanel.setVisible(true); Query query = null; Object src = evt.getSource(); if (src == whatButton) { query = new Query(Query.QUESTION_WHAT, ActivityWidget.ACTIVITY, System.currentTimeMillis()); } else if (src == whyButton) { query = new Query(Query.QUESTION_WHY, ActivityWidget.ACTIVITY, System.currentTimeMillis()); } else if (src == whyNotButton) { List<String> states = viewer.evidencePanel.statesPanel.getStates(); if (states != null) { whyNotTimelinePanel.setStates(states); } JOptionPane.showMessageDialog( this, whyNotTimelinePanel, "Why Not?", JOptionPane.QUESTION_MESSAGE); String altOutcome = whyNotTimelinePanel.getStates().toString(); altOutcome = altOutcome .substring(1, altOutcome.length() - 1) // remove '[' and ']' .replace(",", ""); System.out.println("altOutcome = " + altOutcome); query = new AltQuery( AltQuery.QUESTION_WHY_NOT, ActivityWidget.ACTIVITY, altOutcome, System.currentTimeMillis()); } else if (src == whatIfButton) { Explanation inputsExplanation = explainer.getExplanation( new Query( Query.QUESTION_INPUTS, ActivityWidget.ACTIVITY, System.currentTimeMillis())); whatIfFloorplanPanel.presenter.render(inputsExplanation); // don't need to set? JOptionPane.showMessageDialog( this, whatIfFloorplanPanel, "What If?", JOptionPane.QUESTION_MESSAGE); int[] obs = whatIfFloorplanPanel.getObservations(); SensorsData data = new SensorsData(System.currentTimeMillis()); System.arraycopy(obs, 0, data.featureValues, 0, obs.length); // ComponentDescription widgetState = enactor.getInWidgetState(); // widgetState.addNonConstantAttributes(data.toAttributes(HomeModel.SEQUENCE_LENGTH-1)); // // to replace some attributes Reason inputs = explainer.getInputsExplanation(); // query = new WhatIfQuery(WhatIfQuery.QUESTION_WHAT_IF, ActivityWidget.ACTIVITY, inputs); // viewer.evidencePanel.setVisible(false); } Explanation explanation = explainer.getExplanation(query); System.out.println("Explanation: " + explanation); viewer.presenter.render(explanation); viewer.pack(); }