From c1af17fab4c8cd519f54f572851fc93e7ee8f84a Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Sat, 21 Jul 2018 13:13:35 -0400 Subject: [PATCH] timeline mouse over --- timeflow/views/SummaryView.java | 325 +++++++++++++++++++++++++++-------------------------- 1 files changed, 164 insertions(+), 161 deletions(-) diff --git a/timeflow/views/SummaryView.java b/timeflow/views/SummaryView.java index b51b638..ba198d6 100755 --- a/timeflow/views/SummaryView.java +++ b/timeflow/views/SummaryView.java @@ -13,169 +13,172 @@ import javax.swing.*; +public class SummaryView extends AbstractView +{ -public class SummaryView extends AbstractView { - - private JEditorPane analysisDisplay; - private FieldAnalysis[] fieldAnalyzers=new FieldAnalysis[] - { - new MissingValueAnalysis(), new RangeDateAnalysis(), - new RangeNumberAnalysis(), new FrequencyAnalysis() - }; - private int numItems; - private int numFiltered; - private Interval range; - private JComponent controls; - - public SummaryView(TFModel model) - { - super(model); - analysisDisplay=HtmlDisplay.create(); - JScrollPane scrollPane = new JScrollPane(analysisDisplay); - setLayout(new GridLayout(1,1)); - add(scrollPane); - - controls=new HtmlControls("This report gives a <br> statistical breakdown<br> "+ - "of your data. <p> Reading the summary often helps<br> you find "+ - "data errors."); - } - - @Override - public JComponent _getControls() - { - return controls; - } - - void makeHtml() - { - Display d=getModel().getDisplay(); - ActDB db=getModel().getDB(); - ActList acts=getModel().getActs(); - StringBuffer page=new StringBuffer(); - page.append("<blockquote>"); - if (getModel().getDB()==null) - { - page.append("<h1><font color=#003399>No data loaded.</font></h1>"); - } - else - { - page.append("<BR><BR><BR>File: "+getModel().getDbFile()+"<br>"); - page.append("Source: "+getModel().getDB().getSource()+"<br><br>"); - page.append("Description: "+getModel().getDB().getDescription()+"<br><br>"); - page.append("<br><br>"); - page.append("<table border=0>"); - - - page.append("<tr><td valign=top align=left width=100><b>"); - page.append("<font size=+1>Data</font><br>"); - - page.append("</td><td align=top>"); - append(page, "Total events", ""+numItems); - - if (numItems>0) - { - append(page, "Total selected", ""+numFiltered); - if (numFiltered>0) - { - append(page, "Earliest", new Date(range.start).toString()); - append(page, "Latest", new Date(range.end).toString()); - } - } - page.append("<br></td></tr>"); - - page.append("<tr><td valign=top align=left width=100><b>"); - page.append("<font size=+1>Fields</font><br>"); - - page.append("</td><td align=top>"); - for (Field f: getModel().getDB().getFields()) - { - append(page, f.getName(),FieldFormatCatalog.humanName(f.getType())+fieldLabel(f)); - } - page.append("<br></td></tr>"); - - - page.append("</table>"); + private JEditorPane analysisDisplay; + private FieldAnalysis[] fieldAnalyzers = new FieldAnalysis[] + { + new MissingValueAnalysis(), new RangeDateAnalysis(), + new RangeNumberAnalysis(), new FrequencyAnalysis() + }; + private int numItems; + private int numFiltered; + private Interval range; + private JComponent controls; - if (numFiltered>0) - { - page.append("<h1>Statistics (for "+acts.size()+" items)</h1>"); - for (Field field: db.getFields()) - { - page.append("<h2>"+field.getName()+"</h2>"); - page.append("<ul>"); - for (int i=0; i<fieldAnalyzers.length; i++) - { - FieldAnalysis fa=fieldAnalyzers[i]; - if (fa.canHandleType(field.getType())) - { - page.append("<li>"); - page.append("<b><font color=#808080>"+fa.getName()+"</font></b><br>"); - fa.perform(acts, field); - String[] s=fa.getResultDescription(); - for (int j=0; j<s.length; j++) - { - page.append(s[j]); - page.append("<br>"); - } - page.append("</li>"); - } - } - page.append("</ul>"); - } - } - } - page.append("</blockquote>"); - analysisDisplay.setText(page.toString()); - analysisDisplay.setCaretPosition(0); - } - - static void append(StringBuffer page, String label, String value) - { - page.append("<b><font color=#808080>"+label+"</font></b> "); - page.append(value); - page.append("<br>"); - } - - @Override - protected void onscreen(boolean majorChange) - { - _note(null); - } + public SummaryView(TFModel model) + { + super(model); + analysisDisplay = HtmlDisplay.create(); + JScrollPane scrollPane = new JScrollPane(analysisDisplay); + setLayout(new GridLayout(1, 1)); + add(scrollPane); - protected void _note(TFEvent e) { - recalculate(); - makeHtml(); - repaint(); - } - - String fieldLabel(Field f) - { - StringBuffer b=new StringBuffer("<b>"); - ActDB db=getModel().getDB(); - for (String v: VirtualField.list()) - { - if (db.getField(v)!=null && db.getField(v).getName().equals(f.getName())) - b.append(" (Shown in visualization as "+VirtualField.humanName(v)+")"); - } - b.append("</b>"); - return b.toString(); - } - - void recalculate() - { - ActList acts=getModel().getActs(); - if (acts==null) - { - numItems=0; - return; - } - numFiltered=acts.size(); - numItems=getModel().getDB().size(); - range=DBUtils.range(acts, VirtualField.START); - } + controls = new HtmlControls("This report gives a <br> statistical breakdown<br> " + + "of your data. <p> Reading the summary often helps<br> you find " + + "data errors."); + } - @Override - public String getName() { - return "Summary"; - } + @Override + public JComponent _getControls() + { + return controls; + } + + void makeHtml() + { + Display d = getModel().getDisplay(); + ActDB db = getModel().getDB(); + ActList acts = getModel().getActs(); + StringBuffer page = new StringBuffer(); + page.append("<blockquote>"); + if (getModel().getDB() == null) + { + page.append("<h1><font color=#003399>No data loaded.</font></h1>"); + } else + { + page.append("<BR><BR><BR>File: " + getModel().getDbFile() + "<br>"); + page.append("Source: " + getModel().getDB().getSource() + "<br><br>"); + page.append("Description: " + getModel().getDB().getDescription() + "<br><br>"); + page.append("<br><br>"); + page.append("<table border=0>"); + + + page.append("<tr><td valign=top align=left width=100><b>"); + page.append("<font size=+1>Data</font><br>"); + + page.append("</td><td align=top>"); + append(page, "Total events", "" + numItems); + + if (numItems > 0) + { + append(page, "Total selected", "" + numFiltered); + if (numFiltered > 0) + { + append(page, "Earliest", new Date(range.start).toString()); + append(page, "Latest", new Date(range.end).toString()); + } + } + page.append("<br></td></tr>"); + + page.append("<tr><td valign=top align=left width=100><b>"); + page.append("<font size=+1>Fields</font><br>"); + + page.append("</td><td align=top>"); + for (Field f : getModel().getDB().getFields()) + { + append(page, f.getName(), FieldFormatCatalog.humanName(f.getType()) + fieldLabel(f)); + } + page.append("<br></td></tr>"); + + + page.append("</table>"); + + if (numFiltered > 0) + { + page.append("<h1>Statistics (for " + acts.size() + " items)</h1>"); + for (Field field : db.getFields()) + { + page.append("<h2>" + field.getName() + "</h2>"); + page.append("<ul>"); + for (int i = 0; i < fieldAnalyzers.length; i++) + { + FieldAnalysis fa = fieldAnalyzers[i]; + if (fa.canHandleType(field.getType())) + { + page.append("<li>"); + page.append("<b><font color=#808080>" + fa.getName() + "</font></b><br>"); + fa.perform(acts, field); + String[] s = fa.getResultDescription(); + for (int j = 0; j < s.length; j++) + { + page.append(s[j]); + page.append("<br>"); + } + page.append("</li>"); + } + } + page.append("</ul>"); + } + } + } + page.append("</blockquote>"); + analysisDisplay.setText(page.toString()); + analysisDisplay.setCaretPosition(0); + } + + static void append(StringBuffer page, String label, String value) + { + page.append("<b><font color=#808080>" + label + "</font></b> "); + page.append(value); + page.append("<br>"); + } + + @Override + protected void onscreen(boolean majorChange) + { + _note(null); + } + + protected void _note(TFEvent e) + { + recalculate(); + makeHtml(); + repaint(); + } + + String fieldLabel(Field f) + { + StringBuffer b = new StringBuffer("<b>"); + ActDB db = getModel().getDB(); + for (String v : VirtualField.list()) + { + if (db.getField(v) != null && db.getField(v).getName().equals(f.getName())) + { + b.append(" (Shown in visualization as " + VirtualField.humanName(v) + ")"); + } + } + b.append("</b>"); + return b.toString(); + } + + void recalculate() + { + ActList acts = getModel().getActs(); + if (acts == null) + { + numItems = 0; + return; + } + numFiltered = acts.size(); + numItems = getModel().getDB().size(); + range = DBUtils.range(acts, VirtualField.START); + } + + @Override + public String getName() + { + return "Summary"; + } } -- Gitblit v1.6.2