[Javamatch-cvs] javamatch/docs/website/resources/prevayler MatchFrame.java,NONE,1.1 build.xml,NONE,1
Status: Pre-Alpha
Brought to you by:
iterson
From: Walter v. I. <it...@us...> - 2004-09-06 09:13:15
|
Update of /cvsroot/javamatch/javamatch/docs/website/resources/prevayler In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20888/resources/prevayler Added Files: MatchFrame.java build.xml screenshot.png Log Message: Add chapter "integration with Prevayler" --- NEW FILE: MatchFrame.java --- package org.prevayler.demos.demo2.gui; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.table.*; import net.sourceforge.javamatch.engine.*; import net.sourceforge.javamatch.query.*; import org.prevayler.Prevayler; import org.prevayler.demos.demo2.business.*; /** * Class MatchFrame shows the results of matching the data in the bank demo * application */ class MatchFrame extends JInternalFrame { private Prevayler prevayler; private JButton refreshButton; private JTable matchTable; private DefaultTableModel matchTableModel; /** * Creates a new MatchFrame, that uses the given Prevayler persistent storage * mechanism, and puts itself in the given parent container. */ MatchFrame(Prevayler prevayler, Container container) { super("Interesting accounts"); this.prevayler = prevayler; initUI(); refreshTable(); container.add(this); setVisible(true); } /** * Initializes the user interface */ private void initUI() { setBounds(100,70,400,250); getContentPane().setLayout(new BorderLayout(0, 0)); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0)); refreshButton = new JButton("Refresh"); refreshButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { refreshTable(); } }); buttonPanel.add(refreshButton); getContentPane().add(buttonPanel, BorderLayout.SOUTH); matchTableModel= new DefaultTableModel(); matchTableModel.setColumnIdentifiers(new String[] {"Match", "Account", "Balance", "#Entries"}); matchTable = new JTable(matchTableModel); getContentPane().add(new JScrollPane(matchTable), BorderLayout.CENTER); } /** * Refreshes the table that shows the top-10 matching results */ private void refreshTable() { matchTableModel.setRowCount(0); Bank bank = (Bank)prevayler.prevalentSystem(); java.util.List accounts = bank.accounts(); try { // create the match engine MatchEngine matchEngine = new MatchEngine(); // create the match query OrList query = new OrList(); query.addMatchQuery(new Maximum("balance()")); query.addMatchQuery(new Maximum("transactionHistory().size()")); // execute the match query MatchResult matchResult = matchEngine.executeQuery(query, accounts); // retrieve matching results Iterator resultIterator = matchResult.getResultIterator(); while (resultIterator.hasNext()) { ResultItem curResultItem = (ResultItem)resultIterator.next(); Account matchedAccount = (Account)curResultItem.getMatchedObject(); // create a row in the table that displays the matching results Object[] rowData = new Object[4]; rowData[0] = new Float(curResultItem.getMatchValue()); rowData[1] = matchedAccount; rowData[2] = new Long(matchedAccount.balance()); rowData[3] = new Integer(matchedAccount.transactionHistory().size()); matchTableModel.addRow(rowData); } } catch (MatchException me) { System.out.println(me); } } } --- NEW FILE: build.xml --- <project name="prevayler" default="run"> <property name="lib_junit" value="lib/junit3.8.1.jar"/> <property name="lib_logging" value="lib/commons-logging-1.0.3.jar"/> <property name="lib_skaringa" value="lib/skaringa-r2p6.jar"/> <property name="lib_javamatch" value="lib/javamatch.jar"/> <property name="lib" value="${lib_junit}:${lib_logging}:${lib_skaringa}:${lib_javamatch}"/> <target name="clean" description="Cleans up all generated stuff"> <delete dir="generated" quiet="yes"/> </target> <target name="run" description="Runs the sample application"> <antcall target="compile"/> <java classname="org.prevayler.demos.demo2.Main" classpath="generated/classes:${lib}" fork="true" dir="generated/classes" failonerror="true"/> </target> <target name="compile"> <mkdir dir="generated/classes"/> <javac srcdir="src" destdir="generated/classes" classpath="${lib}" debug="true"> </javac> </target> </project> --- NEW FILE: screenshot.png --- (This appears to be a binary file; contents omitted.) |