public ComponentHolder(ManagerInterface manager, Dimension mapDimension) { peer = manager; mapPanel = new JMapPanel(new GridLayout(1, 1, 2, 2), mapDimension, peer.getLoader()); modifiedFilesListModel = new ModifiedListModel(); originalFilesListModel = new OriginalFilesListModel(); contentListModel = new ContentListModel(); exhibitPhotosModel = new ExhibitPhotosModel(); exhibitNameModel = new ExhibitListModel(); groupListModel = new GroupListModel(); groupExhibitsModel = new GroupExhibitsModel(); exhibitAliasesModel = new ExhibitAliasesModel(); eventsListModel = new EventsListModel(); Calendar calendar = Calendar.getInstance(); Date initDate = calendar.getTime(); calendar.add(Calendar.YEAR, -100); Date earliestDate = calendar.getTime(); calendar.add(Calendar.YEAR, 200); Date latestDate = calendar.getTime(); SpinnerModel dateModel1 = new SpinnerDateModel(initDate, earliestDate, latestDate, Calendar.DATE); SpinnerModel dateModel2 = new SpinnerDateModel(initDate, earliestDate, latestDate, Calendar.DATE); eventStart = new JSpinner(dateModel1); eventEnd = new JSpinner(dateModel2); eventStart.setEditor(new JSpinner.DateEditor(eventStart, "MM/dd/yyyy")); eventEnd.setEditor(new JSpinner.DateEditor(eventEnd, "MM/dd/yyyy")); }
void selectGroup() { ExhibitGroup group = peer.getLoader().getGroup(groupNameList.getSelectedValue().toString()); groupExhibitsModel.notifyChange(); groupExhibitsList.setSelectionInterval(0, 0); groupXSpinnerModel.setValue(group.xPos); groupYSpinnerModel.setValue(group.yPos); }
void addGroup() { String newName = JOptionPane.showInputDialog("Name of new exhibit:"); if (newName != null && newName.length() > 0) { // TODO add name expression matching peer.getLoader().addGroup(newName, new String[0], -1, -1); groupListModel.notifyChange(); peer.makeChange(); } }
void removeGroup() { peer.makeChange(); peer.getLoader().removeGroup(groupNameList.getSelectedValue().toString()); groupNameList.setSelectionInterval(0, 0); groupExhibitsList.setSelectionInterval(0, 0); groupExhibitsModel.notifyChange(); groupListModel.notifyChange(); }
void removeExhibit() { if (exhibitNameList.getModel().getSize() > 1) { peer.getLoader().removeExhibit((String) exhibitNameList.getSelectedValue()); exhibitNameList.setSelectionInterval(0, 0); peer.makeChange(); exhibitNameModel.notifyChange(); } }
void removeTag() { if (contentList.getModel().getSize() > 1) { for (ExhibitInfo e : peer.getLoader().getExhibits()) { if (e.getName().equals((String) exhibitNameList.getSelectedValue())) { e.setContent((String) contentList.getSelectedValue(), null); } } } contentListModel.notifyChange(); contentList.setSelectionInterval(0, 0); }
void addGroupExhibit() { ArrayList<ExhibitInfo> filesList = new ArrayList<ExhibitInfo>(); for (ExhibitInfo e : peer.getLoader().getExhibits()) { filesList.add(e); } String groupName = groupNameList.getSelectedValue().toString(); ExhibitGroup group = peer.getLoader().getGroup(groupName); for (String name : group.exhibits) { for (int i = 0; i < filesList.size(); i++) { if (filesList.get(i).getName().equals(name)) { filesList.remove(i); } } } Object[] files = filesList.toArray(); ExhibitInfo e = (ExhibitInfo) JOptionPane.showInputDialog( null, "Exhibit:", "Add which exhibit to group?", JOptionPane.PLAIN_MESSAGE, null, files, files[0]); if (e != null) { String[] names = new String[group.exhibits.length + 1]; for (int i = 0; i < names.length - 1; i++) { names[i] = group.exhibits[i]; } names[names.length - 1] = e.getName(); ExhibitGroup newGroup = new ExhibitGroup(names, -1, -1); peer.getLoader().addGroup(groupName, newGroup.exhibits, newGroup.xPos, newGroup.yPos); peer.makeChange(); groupExhibitsModel.notifyChange(); } }
@Override public void stateChanged(ChangeEvent arg0) { ExhibitInfo e = getCurrentExhibit(); if (arg0.getSource().equals(exhibitXCoordField.getModel())) { int val = Integer.parseInt(exhibitXCoordField.getModel().getValue().toString()); e.setCoords(val, e.getY()); if (e.origXCoord != e.getX()) { peer.makeChange(); } } else if (arg0.getSource().equals(exhibitYCoordField.getModel())) { int val = Integer.parseInt(exhibitYCoordField.getModel().getValue().toString()); e.setCoords(e.getX(), val); if (e.origYCoord != e.getY()) { peer.makeChange(); } } else if (arg0.getSource().equals(aliasXCoordField.getModel())) { int val = Integer.parseInt(aliasXCoordField.getModel().getValue().toString()); int index = exhibitAliasesList.getSelectedIndex(); Alias alias = e.getAliases()[index]; if (alias.xPos != val) { e.addAlias(alias.name, val, alias.yPos, alias.tag); peer.makeChange(); } } else if (arg0.getSource().equals(aliasYCoordField.getModel())) { int val = Integer.parseInt(aliasYCoordField.getModel().getValue().toString()); int index = exhibitAliasesList.getSelectedIndex(); Alias alias = e.getAliases()[index]; if (alias.yPos != val) { e.addAlias(alias.name, alias.xPos, val, alias.tag); peer.makeChange(); } } else if (arg0.getSource().equals(groupXCoordField.getModel())) { int val = Integer.parseInt(groupXCoordField.getModel().getValue().toString()); String name = groupNameList.getSelectedValue().toString(); ExhibitGroup group = peer.getLoader().getGroup(name); if (val != group.xPos) { peer.getLoader().addGroup(name, group.exhibits, val, group.yPos); peer.makeChange(); } } else if (arg0.getSource().equals(groupYCoordField.getModel())) { int val = Integer.parseInt(groupYCoordField.getModel().getValue().toString()); String name = groupNameList.getSelectedValue().toString(); ExhibitGroup group = peer.getLoader().getGroup(name); if (val != group.yPos) { peer.getLoader().addGroup(name, group.exhibits, group.xPos, val); peer.makeChange(); } } else if (arg0.getSource().equals(eventStart.getModel())) { Event event = peer.getLoader().getEvents().get(eventsList.getSelectedIndex()); event.setStartDay((Date) eventStart.getModel().getValue()); peer.makeChange(); } else if (arg0.getSource().equals(eventEnd.getModel())) { Event event = peer.getLoader().getEvents().get(eventsList.getSelectedIndex()); event.setEndDay((Date) eventEnd.getModel().getValue()); peer.makeChange(); } }
ExhibitInfo getCurrentExhibit() { String name = (String) exhibitNameList.getSelectedValue(); int index = -1; ArrayList<ExhibitInfo> exhibitList = peer.getLoader().getExhibits(); for (int i = 0; i < exhibitList.size(); i++) { if (exhibitList.get(i).getName().equals(name)) { index = i; } } if (index == -1) { return exhibitList.get(0); } else { return exhibitList.get(index); } }
void addExhibit() { String newName = JOptionPane.showInputDialog("Name of new exhibit:"); if (newName != null && ZipManager.exhibitNamePattern.matcher(newName).matches()) { String newContentName = JOptionPane.showInputDialog("Name of first new content:"); if (newContentName != null && ZipManager.localPathPattern.matcher(newContentName).matches()) { ExhibitInfo newE = new ExhibitInfo(newName, 0, 0, null, null); newE.setContent(newContentName, peer.getOriginalFiles()[0]); peer.getLoader().getExhibits().add(newE); exhibitNameModel.notifyChange(); contentListModel.notifyChange(); peer.makeChange(); } else { System.out.println("Invalid tag name " + newContentName); } } else { System.out.println("Invalid exhibit name " + newName); } }