use of jmri.jmrit.roster.Roster in project JMRI by JMRI.
the class EcosLocoAddressManager method checkLocoList.
/* This is used after an event update form the ecos informing us of a change in the
* loco list, we have to determine if it is an addition or delete.
* We should only ever do either a remove or an add in one go, if we are adding the loco
* to the roster otherwise this causes a problem with the roster list.
*/
void checkLocoList(String[] ecoslines) {
log.info("Checking loco list");
String loco;
for (int i = 0; i < ecoslines.length; i++) {
loco = ecoslines[i];
loco = loco.replaceAll("[\\n\\r]", "");
if (getByEcosObject(loco) == null) {
log.debug("We are to add loco " + loco + " to the Ecos Loco List");
EcosMessage mout = new EcosMessage("get(" + loco + ", addr, name, protocol)");
tc.sendEcosMessage(mout, this);
}
}
String[] jmrilist = getEcosObjectArray();
boolean nomatch = true;
for (int i = 0; i < jmrilist.length; i++) {
nomatch = true;
for (int k = 0; k < ecoslines.length; k++) {
loco = ecoslines[k];
loco = loco.replaceAll("[\\n\\r]", "");
if (loco.equals(jmrilist[i])) {
nomatch = false;
break;
}
}
if (nomatch) {
//System.out.println("We do not have a match, therefore this should be deleted from the Ecos loco Manager " + jmrilist[i]);
log.debug("Loco not found so need to remove from register");
if (getByEcosObject(jmrilist[i]).getRosterId() != null) {
final String rosterid = getByEcosObject(jmrilist[i]).getRosterId();
final Roster _roster = Roster.getDefault();
final RosterEntry re = _roster.entryFromTitle(rosterid);
re.deleteAttribute(p.getRosterAttribute());
re.writeFile(null, null, null);
Roster.getDefault().writeRoster();
if (p.getRemoveLocoFromJMRI() == EcosPreferences.YES) {
_roster.removeEntry(re);
Roster.getDefault().writeRoster();
} else if (p.getRemoveLocoFromJMRI() == EcosPreferences.ASK) {
try {
final JDialog dialog = new JDialog();
dialog.setTitle("Remove Roster Entry From JMRI?");
dialog.setLocation(300, 200);
dialog.setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE);
JPanel container = new JPanel();
container.setLayout(new BoxLayout(container, BoxLayout.Y_AXIS));
container.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
JLabel question = new JLabel(rosterid + " has been removed from the Ecos do you want to remove it from JMRI?");
question.setAlignmentX(Component.CENTER_ALIGNMENT);
container.add(question);
final JCheckBox remember = new JCheckBox("Remember this setting for next time?");
remember.setFont(remember.getFont().deriveFont(10f));
remember.setAlignmentX(Component.CENTER_ALIGNMENT);
//user preferences do not have the save option, but once complete the following line can be removed
//Need to get the method to save connection configuration.
remember.setVisible(true);
JButton yesButton = new JButton("Yes");
JButton noButton = new JButton("No");
JPanel button = new JPanel();
button.setAlignmentX(Component.CENTER_ALIGNMENT);
button.add(yesButton);
button.add(noButton);
container.add(button);
noButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (remember.isSelected()) {
p.setRemoveLocoFromJMRI(EcosPreferences.ASK);
}
dialog.dispose();
}
});
yesButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (remember.isSelected()) {
p.setRemoveLocoFromJMRI(EcosPreferences.YES);
}
setLocoToRoster();
_roster.removeEntry(re);
Roster.getDefault().writeRoster();
dialog.dispose();
}
});
container.add(remember);
container.setAlignmentX(Component.CENTER_ALIGNMENT);
container.setAlignmentY(Component.CENTER_ALIGNMENT);
dialog.getContentPane().add(container);
dialog.pack();
dialog.setModal(true);
dialog.setVisible(true);
} catch (HeadlessException he) {
// silently ignore inability to display dialog
}
}
}
//Even if we do not delete the loco from the roster, we need to remove it from the ecos list.
deregister(getByEcosObject(jmrilist[i]));
}
}
}
use of jmri.jmrit.roster.Roster in project JMRI by JMRI.
the class RosterTableModelTest method setUp.
@Override
public void setUp() {
apps.tests.Log4JFixture.setUp();
// Create empty test instance
InstanceManager.reset(Roster.class);
InstanceManager.setDefault(Roster.class, new Roster());
// first entry
Element e;
RosterEntry r;
e = new org.jdom2.Element("locomotive").setAttribute("id", "id 1").setAttribute("fileName", "file here").setAttribute("roadNumber", "431").setAttribute("roadName", "SP").setAttribute("mfg", "Athearn").setAttribute("dccAddress", "1234").addContent(new org.jdom2.Element("decoder").setAttribute("family", "91").setAttribute("model", "33")).addContent(new org.jdom2.Element("locoaddress").addContent(new org.jdom2.Element("dcclocoaddress").setAttribute("number", "12").setAttribute("longaddress", "yes")));
// end create element
r = new RosterEntry(e) {
@Override
protected void warnShortLong(String s) {
}
};
Roster.getDefault().addEntry(r);
r.putAttribute("key a", "value 1");
e = new org.jdom2.Element("locomotive").setAttribute("id", "id 2").setAttribute("fileName", "file here").setAttribute("roadNumber", "431").setAttribute("roadName", "SP").setAttribute("mfg", "Athearn").addContent(new org.jdom2.Element("decoder").setAttribute("family", "91").setAttribute("model", "34")).addContent(new org.jdom2.Element("locoaddress").addContent(new org.jdom2.Element("dcclocoaddress").setAttribute("number", "13").setAttribute("longaddress", "yes")));
// end create element
r = new RosterEntry(e) {
@Override
protected void warnShortLong(String s) {
}
};
Roster.getDefault().addEntry(r);
r.putAttribute("key a", "value 11");
r.putAttribute("key b", "value 12");
r.putAttribute("key c", "value 13");
r.putAttribute("key d", "value 14");
e = new org.jdom2.Element("locomotive").setAttribute("id", "id 3").setAttribute("fileName", "file here").setAttribute("roadNumber", "431").setAttribute("roadName", "SP").setAttribute("mfg", "Athearn").addContent(new org.jdom2.Element("decoder").setAttribute("family", "91").setAttribute("model", "35")).addContent(new org.jdom2.Element("locoaddress").addContent(new org.jdom2.Element("dcclocoaddress").setAttribute("number", "14").setAttribute("longaddress", "yes")));
// end create element
r = new RosterEntry(e) {
@Override
protected void warnShortLong(String s) {
}
};
Roster.getDefault().addEntry(r);
}
use of jmri.jmrit.roster.Roster in project JMRI by JMRI.
the class AttributeTableModelTest method setUp.
@Override
public void setUp() {
apps.tests.Log4JFixture.setUp();
// Create empty test instance
InstanceManager.reset(Roster.class);
InstanceManager.setDefault(Roster.class, new Roster());
// first entry
Element e;
RosterEntry r;
e = new org.jdom2.Element("locomotive").setAttribute("id", "id 1").setAttribute("fileName", "file here").setAttribute("roadNumber", "431").setAttribute("roadName", "SP").setAttribute("mfg", "Athearn").setAttribute("dccAddress", "1234").addContent(new org.jdom2.Element("decoder").setAttribute("family", "91").setAttribute("model", "33")).addContent(new org.jdom2.Element("locoaddress").addContent(new org.jdom2.Element("dcclocoaddress").setAttribute("number", "12").setAttribute("longaddress", "yes")));
// end create element
r = new RosterEntry(e) {
@Override
protected void warnShortLong(String s) {
}
};
Roster.getDefault().addEntry(r);
r.putAttribute("key a", "value 1");
e = new org.jdom2.Element("locomotive").setAttribute("id", "id 2").setAttribute("fileName", "file here").setAttribute("roadNumber", "431").setAttribute("roadName", "SP").setAttribute("mfg", "Athearn").addContent(new org.jdom2.Element("decoder").setAttribute("family", "91").setAttribute("model", "33")).addContent(new org.jdom2.Element("locoaddress").addContent(new org.jdom2.Element("dcclocoaddress").setAttribute("number", "12").setAttribute("longaddress", "yes")));
// end create element
r = new RosterEntry(e) {
@Override
protected void warnShortLong(String s) {
}
};
Roster.getDefault().addEntry(r);
r.putAttribute("key a", "value 11");
r.putAttribute("key b", "value 12");
r.putAttribute("key c", "value 13");
r.putAttribute("key d", "value 14");
e = new org.jdom2.Element("locomotive").setAttribute("id", "id 3").setAttribute("fileName", "file here").setAttribute("roadNumber", "431").setAttribute("roadName", "SP").setAttribute("mfg", "Athearn").addContent(new org.jdom2.Element("decoder").setAttribute("family", "91").setAttribute("model", "33")).addContent(new org.jdom2.Element("locoaddress").addContent(new org.jdom2.Element("dcclocoaddress").setAttribute("number", "12").setAttribute("longaddress", "yes")));
// end create element
r = new RosterEntry(e) {
@Override
protected void warnShortLong(String s) {
}
};
Roster.getDefault().addEntry(r);
}
use of jmri.jmrit.roster.Roster in project JMRI by JMRI.
the class JsonRosterHttpServiceTest method setUp.
// private final static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(JsonRosterHttpServiceTest.class);
@Before
public void setUp() throws Exception {
Log4JFixture.setUp();
JUnitUtil.resetInstanceManager();
JUnitUtil.initConfigureManager();
InstanceManager.setDefault(Roster.class, new Roster("java/test/jmri/server/json/roster/data/roster.xml"));
}
use of jmri.jmrit.roster.Roster in project JMRI by JMRI.
the class JsonRosterSocketServiceTest method setUp.
@Before
public void setUp() throws Exception {
Log4JFixture.setUp();
JUnitUtil.resetInstanceManager();
JUnitUtil.initConfigureManager();
InstanceManager.setDefault(Roster.class, new Roster("java/test/jmri/server/json/roster/data/roster.xml"));
// clear the last message (if any) from the connection
this.connection.sendMessage((JsonNode) null);
}
Aggregations