void selectExhibit() {
    ExhibitInfo e = getCurrentExhibit();

    contentListModel.notifyChange();
    exhibitPhotosModel.notifyChange();
    contentList.setSelectionInterval(0, 0);
    for (ListSelectionListener l : contentList.getListSelectionListeners()) {
      l.valueChanged(new ListSelectionEvent(contentList, 0, 0, false));
    }
    exhibitXCoordField.getModel().setValue(e.getX());
    exhibitXCoordOrig.setText("X coordinate: (was " + e.origXCoord + ")");
    exhibitYCoordField.getModel().setValue(e.getY());
    exhibitYCoordOrig.setText("Y coordinate: (was " + e.origYCoord + ")");

    exhibitNextDropdown.setSelectedItem(e.getNext());
    if (e.getNext() != null) {
      exhibitNextOrig.setText("Next: (was " + e.origNext + ")");
    } else {
      exhibitPreviousOrig.setText("Next:");
    }
    exhibitPreviousDropdown.setSelectedItem(e.getPrevious());
    if (e.getPrevious() != null) {
      exhibitPreviousOrig.setText("Previous: (was " + e.origPrevious + ")");
    } else {
      exhibitPreviousOrig.setText("Previous:");
    }

    exhibitPhotosList.setSelectionInterval(0, 0);
    exhibitAliasesList.setSelectionInterval(0, 0);

    exhibitAliasesModel.notifyChange();

    selectPhoto();
    selectAlias();
  }
 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 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 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);
   }
 }