Skip to content
This repository was archived by the owner on Apr 22, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 54 additions & 53 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,54 +1,55 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.opentradingsolutions</groupId>
<artifactId>log4fix</artifactId>
<version>2.0.0-SNAPSHOT</version>
<repositories>
<repository>
<id>MarketceteraRepo</id>
<url>http://repo.marketcetera.org/maven</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>quickfixj</groupId>
<artifactId>quickfixj-all</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>net.java.dev.glazedlists</groupId>
<artifactId>glazedlists_java15</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.swinglabs</groupId>
<artifactId>swingx</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>


</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.opentradingsolutions</groupId>
<artifactId>log4fix</artifactId>
<version>2.0.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>MarketceteraRepo</id>
<url>http://repo.marketcetera.org/maven</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>quickfixj</groupId>
<artifactId>quickfixj-all</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>net.java.dev.glazedlists</groupId>
<artifactId>glazedlists_java15</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-all</artifactId>
<version>1.6.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,10 @@

package org.opentradingsolutions.log4fix.ui.fields;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;

import javax.swing.tree.TreeNode;

import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode;
import org.jdesktop.swingx.treetable.MutableTreeTableNode;
import org.jdesktop.swingx.treetable.TreeTableNode;
import org.opentradingsolutions.log4fix.core.LogField;
import org.opentradingsolutions.log4fix.core.LogGroup;
Expand All @@ -46,9 +42,7 @@
*/
public class FieldTreeNode extends DefaultMutableTreeTableNode {

private TreeTableNode parent;
private final LogField field;
private List<FieldTreeNode> groups = new ArrayList<FieldTreeNode>();

public FieldTreeNode(LogField field) {
this.field = field;
Expand All @@ -59,32 +53,20 @@ public FieldTreeNode(LogField field) {
for (LogGroup logGroup : logGroups) {
List<LogField> fields = logGroup.getFields();
for (LogField logField : fields) {
groups.add(new FieldTreeNode(logField));
add(new FieldTreeNode(logField));
}
}
}
}

public void setParent(TreeTableNode parent) {
this.parent = parent;
}

public TreeTableNode getChildAt(int childIndex) {
return groups.get(childIndex);
}

public int getChildCount() {
return field.isRepeatingGroup() ? groups.size() : 0;
public void setParent(MutableTreeTableNode parent) {
super.setParent(parent);
}

public TreeTableNode getParent() {
return parent;
}

public int getIndex(TreeNode node) {
return groups.indexOf(node);
}

public boolean getAllowsChildren() {
return field.isRepeatingGroup();
}
Expand All @@ -93,10 +75,6 @@ public boolean isLeaf() {
return !field.isRepeatingGroup();
}

public Enumeration children() {
return Collections.enumeration(groups);
}

public LogField getField() {
return field;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,23 +75,38 @@ public String getColumnName(int column) {
}

public Object getValueAt(Object node, int column) {

FieldTreeNode fieldTreeNode = (FieldTreeNode) node;
LogField field = fieldTreeNode.getField();

switch (column) {
case 0:
return field.getFieldName();
case 1:
return field.getTag();
case 2:
return field.getValue();
case 3:
return field.getFieldValueName();
case 4:
return field.isRequired();
default:
return "Dang It!";
if (node instanceof FieldTreeNode) {
FieldTreeNode fieldTreeNode = (FieldTreeNode) node;
LogField field = fieldTreeNode.getField();
switch (column) {
case 0:
return field.getFieldName();
case 1:
return field.getTag();
case 2:
return field.getValue();
case 3:
return field.getFieldValueName();
case 4:
return field.isRequired();
default:
return "Dang It!";
}
} else {
switch (column) {
case 0:
return "Unknown";
case 1:
return -1;
case 2:
return "None";
case 3:
return "";
case 4:
return false;
default:
return "Dang It!";
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@

package org.opentradingsolutions.log4fix.ui.messages;

import ca.odell.glazedlists.swing.EventTableModel;

import java.awt.Color;
import java.awt.Component;
import java.text.SimpleDateFormat;
Expand All @@ -42,16 +40,18 @@
import org.opentradingsolutions.log4fix.core.LogMessage;
import org.opentradingsolutions.log4fix.core.ValidationError;

import ca.odell.glazedlists.swing.DefaultEventTableModel;

/**
* @author Brian M. Coyner
*/
public class RawMessageTableCellRenderer extends DefaultTableCellRenderer {

public static final String RECEIVING = "Receiving";
public static final String RECEIVING = "Receiving";
public static final String SENDING = "Sending";

private Color incomingColor = new Color(131, 218, 102);
private Color outgoingColor = new Color(233, 173, 89);
private Color incomingColor = new Color(255, 200, 80);
private Color outgoingColor = new Color(195, 255, 195);
private SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

@Override
Expand All @@ -61,7 +61,7 @@ public Component getTableCellRendererComponent(JTable table, Object value, boole
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

// noinspection unchecked
EventTableModel<LogMessage> tableModel = (EventTableModel<LogMessage>) table.getModel();
DefaultEventTableModel<LogMessage> tableModel = (DefaultEventTableModel<LogMessage>) table.getModel();
LogMessage message = tableModel.getElementAt(row);

if (table.convertColumnIndexToModel(column) == 2) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,6 @@

package org.opentradingsolutions.log4fix.ui.messages;

import ca.odell.glazedlists.EventList;
import ca.odell.glazedlists.FilterList;
import ca.odell.glazedlists.GlazedLists;
import ca.odell.glazedlists.SortedList;
import ca.odell.glazedlists.gui.TableFormat;
import ca.odell.glazedlists.impl.beans.BeanTableFormat;
import ca.odell.glazedlists.impl.filter.TextMatcher;
import ca.odell.glazedlists.impl.matchers.NotMatcher;
import ca.odell.glazedlists.matchers.Matcher;
import ca.odell.glazedlists.matchers.TextMatcherEditor;
import ca.odell.glazedlists.swing.EventListModel;
import ca.odell.glazedlists.swing.EventSelectionModel;
import ca.odell.glazedlists.swing.EventTableModel;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
Expand All @@ -64,6 +50,21 @@
import org.opentradingsolutions.log4fix.ui.fields.FieldTreeTableModel;
import org.opentradingsolutions.log4fix.ui.fields.RootNode;

import ca.odell.glazedlists.EventList;
import ca.odell.glazedlists.FilterList;
import ca.odell.glazedlists.GlazedLists;
import ca.odell.glazedlists.SortedList;
import ca.odell.glazedlists.gui.TableFormat;
import ca.odell.glazedlists.impl.beans.BeanTableFormat;
import ca.odell.glazedlists.impl.filter.SearchTerm;
import ca.odell.glazedlists.impl.filter.TextMatcher;
import ca.odell.glazedlists.impl.matchers.NotMatcher;
import ca.odell.glazedlists.matchers.Matcher;
import ca.odell.glazedlists.matchers.TextMatcherEditor;
import ca.odell.glazedlists.swing.DefaultEventListModel;
import ca.odell.glazedlists.swing.DefaultEventSelectionModel;
import ca.odell.glazedlists.swing.DefaultEventTableModel;

/**
* Simple core representing raw and cracked FIX messages. This core provides
* various Swing core objects that are used to bind the data to Swing table components.
Expand All @@ -72,15 +73,15 @@
*/
public class ViewModel implements ListSelectionListener {

private EventTableModel<LogMessage> rawMessagesTableModel;
private EventSelectionModel<LogMessage> rawMessagesSelectionModel;
private DefaultEventTableModel<LogMessage> rawMessagesTableModel;
private DefaultEventSelectionModel<LogMessage> rawMessagesSelectionModel;
private TableCellRenderer rawMessagesTableCellRenderer;

private final FieldTreeTableModel treeTableModel;
private final MemoryLogModel memoryLogModel;
private final SortedList<LogMessage> sortedList;
private final FilterList<LogMessage> filteredList;
private final EventListModel<LogEvent> eventsListModel;
private final DefaultEventListModel<LogEvent> eventsListModel;

public ViewModel(MemoryLogModel memoryLogModel) {
this.memoryLogModel = memoryLogModel;
Expand All @@ -91,10 +92,10 @@ public ViewModel(MemoryLogModel memoryLogModel) {
createRaw(sortedList);

treeTableModel = new FieldTreeTableModel();
eventsListModel = new EventListModel<LogEvent>((EventList<LogEvent>) memoryLogModel.getEvents());
eventsListModel = new DefaultEventListModel<LogEvent>((EventList<LogEvent>) memoryLogModel.getEvents());
}

public EventListModel<LogEvent> getEventsListModel() {
public DefaultEventListModel<LogEvent> getEventsListModel() {
return eventsListModel;
}

Expand All @@ -106,7 +107,7 @@ FilterList getFilteredList() {
return filteredList;
}

public EventSelectionModel<LogMessage> getRawMessagesSelectionModel() {
public DefaultEventSelectionModel<LogMessage> getRawMessagesSelectionModel() {
return rawMessagesSelectionModel;
}

Expand Down Expand Up @@ -178,9 +179,9 @@ private void createRaw(EventList<LogMessage> adminMessages) {
TableFormat<LogMessage> adminTableFormat = new BeanTableFormat<LogMessage>(
LogMessage.class, properties, columnNames);

rawMessagesTableModel = new EventTableModel<LogMessage>(adminMessages,
rawMessagesTableModel = new DefaultEventTableModel<LogMessage>(adminMessages,
adminTableFormat);
rawMessagesSelectionModel = new EventSelectionModel<LogMessage>(adminMessages);
rawMessagesSelectionModel = new DefaultEventSelectionModel<LogMessage>(adminMessages);
rawMessagesSelectionModel.addListSelectionListener(this);
rawMessagesTableCellRenderer = new RawMessageTableCellRenderer();
}
Expand All @@ -204,10 +205,12 @@ public ActionListener getHideHeartbeatsActionListener() {
public void actionPerformed(ActionEvent e) {
JCheckBox checkBox = (JCheckBox) e.getSource();
if (checkBox.isSelected()) {

String[] filters = {"Heartbeat"};
TextMatcher<LogMessage> textMatcher = new TextMatcher<LogMessage>(
filters, new HeartbeatFilterator(), TextMatcherEditor.CONTAINS);
SearchTerm<LogMessage>[] filters = new SearchTerm[] { new SearchTerm<LogMessage>(
"HeartBeat") };
TextMatcher<LogMessage> textMatcher = new TextMatcher<LogMessage>(
filters, new HeartbeatFilterator(),
TextMatcherEditor.CONTAINS,
TextMatcherEditor.NORMALIZED_STRATEGY);
Matcher<LogMessage> matcher = new NotMatcher<LogMessage>(textMatcher);
filteredList.setMatcher(matcher);
} else {
Expand Down
Loading