void addImage() { ArrayList<String> fileList = new ArrayList<String>(); for (String file : peer.getOriginalFiles()) { if (false == peer.modifiedFileExists(file)) { if (ZipManager.isImage(file)) { fileList.add(file); } } } for (String file : peer.getModifiedFileNames()) { if (ZipManager.isImage(file)) { fileList.add(file); } } Object[] files = fileList.toArray(); String s = (String) JOptionPane.showInputDialog( null, "File to use:", "New Photo", JOptionPane.PLAIN_MESSAGE, null, files, files[0]); if ((s != null) && (s.length() > 0)) { getCurrentExhibit().addPhoto(new ExhibitPhoto(s, null)); exhibitPhotosModel.notifyChange(); peer.makeChange(); } }
void removeExhibit() { if (exhibitNameList.getModel().getSize() > 1) { peer.getLoader().removeExhibit((String) exhibitNameList.getSelectedValue()); exhibitNameList.setSelectionInterval(0, 0); peer.makeChange(); exhibitNameModel.notifyChange(); } }
void removeGroup() { peer.makeChange(); peer.getLoader().removeGroup(groupNameList.getSelectedValue().toString()); groupNameList.setSelectionInterval(0, 0); groupExhibitsList.setSelectionInterval(0, 0); groupExhibitsModel.notifyChange(); groupListModel.notifyChange(); }
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 editFile() { String[] keys = peer.getModifiedFileNames(); File f = peer.getModifiedFile(keys[modifiedFilesList.getSelectedIndex()]); String[] exec = {"cmd.exe", "/C", f.getPath()}; try { Runtime.getRuntime().exec(exec); } catch (IOException e) { e.printStackTrace(); } }
void addContent() { String newName = JOptionPane.showInputDialog("Name of new content:"); if (newName != null && ZipManager.localPathPattern.matcher(newName).matches()) { getCurrentExhibit().setContent(newName, peer.getOriginalFiles()[0]); contentListModel.notifyChange(); peer.makeChange(); } else { System.out.println("Invalid tag name " + newName); } }
void selectPhoto() { int index = exhibitPhotosList.getSelectedIndex(); String shortUrl = getCurrentExhibit().getPhotos()[index].shortUrl; if (peer.modifiedFileExists(shortUrl)) { exhibitPhotosImage.setImage(peer.getModifiedFile(shortUrl)); } else { exhibitPhotosImage.setImage(shortUrl, peer.getFileInputStream("assets/" + shortUrl)); } photoCaption.setText(getCurrentExhibit().getPhotos()[index].getCaption()); }
void selectGroup() { ExhibitGroup group = peer.getLoader().getGroup(groupNameList.getSelectedValue().toString()); groupExhibitsModel.notifyChange(); groupExhibitsList.setSelectionInterval(0, 0); groupXSpinnerModel.setValue(group.xPos); groupYSpinnerModel.setValue(group.yPos); }
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")); }
private String[] getAllContentList() { ArrayList<String> list = new ArrayList<String>(); for (String s : peer.getOriginalFiles()) { if (false == peer.modifiedFileExists(s)) { if (ZipManager.isImage(s) == false) { list.add(s); } } } for (String s : peer.getModifiedFileNames()) { if (ZipManager.isImage(s) == false) { list.add(s); } } return list.toArray(new String[0]); }
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); } }
void setPrevious() { String prev = (String) exhibitPreviousDropdown.getSelectedItem(); if (prev != null) { ExhibitInfo e = getCurrentExhibit(); e.setPrevious(prev); if (e.origPrevious == null || false == e.origPrevious.equals(prev)) { peer.makeChange(); } } }
void setNext() { String next = (String) exhibitNextDropdown.getSelectedItem(); if (next != null) { ExhibitInfo e = getCurrentExhibit(); e.setNext(next); if (e.origNext == null || false == e.origNext.equals(next)) { peer.makeChange(); } } }
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 viewFile() { String filename = peer.getOriginalFiles()[originalFilesList.getSelectedIndex()]; String ext = filename.substring(filename.lastIndexOf('.') + 1); try { File f = new File(".tmp" + new Random().nextInt() + "." + ext); OutputStream outStream = new FileOutputStream(f); InputStream stream = peer.getFileInputStream("assets/" + filename); for (int result = stream.read(); result != -1; result = stream.read()) { outStream.write(result); } outStream.close(); String[] exec = {"cmd.exe", "/C", f.getPath()}; try { Runtime.getRuntime().exec(exec); } catch (IOException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } }
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(); } }
void loadHTMLContent(String shortUrl) { try { StyleSheet style = htmlKit.getStyleSheet(); BufferedReader r = new BufferedReader( new InputStreamReader( peer.getFileInputStream("assets/ExhibitContents/exhibits.css"))); style.loadRules(r, null); } catch (Exception e) { // TODO do the try block differently if css has been modified. } InputStream r = peer.getFileInputStream("assets/" + shortUrl); // TODO do differently if modified StringBuffer sb = new StringBuffer(128); try { byte[] buffer = new byte[128]; for (int result = r.read(buffer); result != -1; result = r.read(buffer)) { sb.append(new String(buffer, 0, result)); } } catch (IOException e) { } htmlContentViewer.setText(sb.toString()); }
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); } }
@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(); } }