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 void init() { exhibitNameList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); exhibitNameList.setModel(exhibitNameModel); exhibitNameList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent arg0) { selectExhibit(); } }); contentList.setModel(contentListModel); contentList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); contentList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent arg0) { selectContent(); } }); groupExhibitsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); groupExhibitsList.setModel(groupExhibitsModel); exhibitAliasesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); exhibitAliasesList.setModel(exhibitAliasesModel); exhibitAliasesList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent arg0) { selectAlias(); } }); groupNameList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); groupNameList.setModel(groupListModel); groupNameList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent arg0) { selectGroup(); } }); eventsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); eventsList.setModel(eventsListModel); eventsList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent arg0) { Event e = eventsListModel.getEvent(eventsList.getSelectedIndex()); eventDescription.setText(e.getDescription()); eventName.setText(e.getTitle()); eventStart.getModel().setValue(e.getStartDay()); eventEnd.getModel().setValue(e.getEndDay()); eventPhotoDropdown.setSelectedItem(e.getImage()); } }); exhibitNextDropdown.setModel(new ExhibitDropdownModel()); exhibitPreviousDropdown.setModel(new ExhibitDropdownModel()); htmlContentViewer.setEditable(false); htmlContentViewer.setEditorKit(htmlKit); Document doc = htmlKit.createDefaultDocument(); htmlContentViewer.setDocument(doc); eventName .getDocument() .addDocumentListener( new DocumentListener() { private void change() { Event e = peer.getLoader().getEvents().get(eventsList.getSelectedIndex()); e.setTitle(eventName.getText()); peer.makeChange(); eventsListModel.notifyChange(); } @Override public void changedUpdate(DocumentEvent arg0) { change(); } @Override public void insertUpdate(DocumentEvent arg0) { change(); } @Override public void removeUpdate(DocumentEvent arg0) { change(); } }); eventDescription.setLineWrap(true); eventDescription.setWrapStyleWord(true); eventDescription .getDocument() .addDocumentListener( new DocumentListener() { private void change() { Event e = peer.getLoader().getEvents().get(eventsList.getSelectedIndex()); e.setDescription(eventDescription.getText()); peer.makeChange(); } @Override public void changedUpdate(DocumentEvent arg0) { change(); } @Override public void insertUpdate(DocumentEvent arg0) { change(); } @Override public void removeUpdate(DocumentEvent arg0) { change(); } }); photoCaption.setBorder(paddedLine); photoCaption.setLineWrap(true); photoCaption.setWrapStyleWord(true); photoCaption .getDocument() .addDocumentListener( new DocumentListener() { private void change() { getCurrentExhibit() .getPhotos()[exhibitPhotosList.getSelectedIndex()] .setCaption(photoCaption.getText()); peer.makeChange(); } @Override public void changedUpdate(DocumentEvent arg0) { change(); } @Override public void insertUpdate(DocumentEvent arg0) { change(); } @Override public void removeUpdate(DocumentEvent arg0) { change(); } }); exhibitNextDropdown.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { setNext(); } }); exhibitPreviousDropdown.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { setPrevious(); } }); addGroupExhibitButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent a) { addGroupExhibit(); } }); removeGroupExhibitButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { removeGroupExhibit(); } }); addGroupButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { addGroup(); } }); editFileButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent a) { editFile(); } }); viewFileButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent a) { viewFile(); } }); removeGroupButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { removeGroup(); } }); newFileButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { peer.addFile(); modifiedFilesListModel.notifyChange(); } }); newExhibitButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { addExhibit(); } }); removeExhibitButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { removeExhibit(); } }); newTagButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { addContent(); } }); removeTagButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { removeTag(); } }); newImageButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { addImage(); } }); addEventButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { Event e = new Event(); e.setTitle("New Event"); e.setStartDay(new Date()); peer.getLoader().getEvents().add(e); peer.getLoader().getEvents(); eventsListModel.notifyChange(); peer.makeChange(); eventsList.setSelectedIndex(0); } }); removeEventButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { peer.getLoader().getEvents().remove(eventsList.getSelectedIndex()); peer.getLoader().getEvents(); eventsListModel.notifyChange(); peer.makeChange(); } }); exhibitXSpinnerModel.addChangeListener(this); exhibitYSpinnerModel.addChangeListener(this); aliasXSpinnerModel.addChangeListener(this); aliasYSpinnerModel.addChangeListener(this); groupXSpinnerModel.addChangeListener(this); groupYSpinnerModel.addChangeListener(this); eventStart.getModel().addChangeListener(this); eventEnd.getModel().addChangeListener(this); eventPhotoDropdown.setEditable(false); eventPhotoDropdown.setModel(new PhotoDropdownModel()); eventPhotoDropdown.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { Event e = peer.getLoader().getEvents().get(eventsList.getSelectedIndex()); e.setImage(eventPhotoDropdown.getSelectedItem().toString()); } }); newContentDropdown.setEditable(false); newContentDropdown.setModel(new ContentDropdownModel()); newContentDropdown.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { ExhibitInfo e = getCurrentExhibit(); String currentTag = (String) contentList.getSelectedValue(); String content = (String) newContentDropdown.getSelectedItem(); e.setContent(currentTag, content); loadHTMLContent(content); if (false == e.getContent(currentTag).equals(e.getOrigContents(currentTag))) { peer.makeChange(); } } }); exhibitPhotosList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); exhibitPhotosList.setModel(exhibitPhotosModel); exhibitPhotosList.addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent arg0) { selectPhoto(); } }); exhibitContentLabel.setBorder(paddedLine); modifiedFilesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); modifiedFilesList.setModel(modifiedFilesListModel); originalFilesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); originalFilesList.setModel(originalFilesListModel); modifiedFilesList.setSelectionInterval(0, 0); exhibitNameList.setSelectionInterval(0, 0); contentList.setSelectionInterval(0, 0); exhibitPhotosList.setSelectionInterval(0, 0); groupNameList.setSelectionInterval(0, 0); exhibitAliasesList.setSelectionInterval(0, 0); eventsList.setSelectionInterval(0, 0); JPanel contentDropdownPanel = new JPanel(new GridLayout(4, 1, 2, 2)); contentDropdownPanel.add(new JLabel("Original content:")); contentDropdownPanel.add(exhibitContentLabel); contentDropdownPanel.add(new JLabel("Current content:")); contentDropdownPanel.add(newContentDropdown); JPanel contentButtonPanel = new JPanel(new GridLayout(3, 1, 2, 2)); contentButtonPanel.add(newTagButton); contentButtonPanel.add(removeTagButton); contentButtonPanel.add(renameTagButton); for (Component c : contentButtonPanel.getComponents()) { JButton b = (JButton) c; b.setBorder(BorderFactory.createCompoundBorder(b.getBorder(), mediumPaddedBorder)); } addEventButton.setBorder(largePaddedBorder); removeEventButton.setBorder(largePaddedBorder); JPanel contentListPanel = new JPanel(new BorderLayout()); contentListPanel.add(new JScrollPane(contentList), BorderLayout.CENTER); contentListPanel.add(contentButtonPanel, BorderLayout.EAST); JPanel contentControlPanel = new JPanel(new GridLayout(2, 1, 2, 2)); contentControlPanel.add(contentListPanel); contentControlPanel.add(contentDropdownPanel); contentPanel.add(new JScrollPane(htmlContentViewer)); contentPanel.add(contentControlPanel); contentPanel.setBorder(mediumPaddedBorder); exhibitDataPanel.add(exhibitXCoordOrig); exhibitDataPanel.add(exhibitXCoordField); exhibitDataPanel.add(exhibitPreviousOrig); exhibitDataPanel.add(exhibitPreviousDropdown); exhibitDataPanel.add(exhibitYCoordOrig); exhibitDataPanel.add(exhibitYCoordField); exhibitDataPanel.add(exhibitNextOrig); exhibitDataPanel.add(exhibitNextDropdown); JPanel exhibitButtonsPanel = new JPanel(new GridLayout(3, 1, 2, 2)); exhibitButtonsPanel.add(newExhibitButton); exhibitButtonsPanel.add(removeExhibitButton); exhibitButtonsPanel.add(renameExhibitButton); for (Component c : exhibitButtonsPanel.getComponents()) { JButton b = (JButton) c; b.setBorder(BorderFactory.createCompoundBorder(b.getBorder(), mediumPaddedBorder)); } JPanel listPanelTop = new JPanel(new BorderLayout()); listPanelTop.add(new JLabel("Exhibits:"), BorderLayout.NORTH); listPanelTop.add(new JScrollPane(exhibitNameList), BorderLayout.CENTER); listPanelTop.add(exhibitButtonsPanel, BorderLayout.EAST); JPanel photoButtonPanel = new JPanel(new GridLayout(1, 2, 2, 2)); photoButtonPanel.add(newImageButton); photoButtonPanel.add(removeImageButton); JPanel photoDataPanel = new JPanel(new GridLayout(2, 1, 2, 2)); photoDataPanel.add(new JScrollPane(exhibitPhotosList)); photoDataPanel.add(photoCaption); JPanel photoPanelRight = new JPanel(new BorderLayout()); photoPanelRight.add(new JLabel("Exhibit Photos:"), BorderLayout.NORTH); photoPanelRight.add(photoDataPanel, BorderLayout.CENTER); photoPanelRight.add(photoButtonPanel, BorderLayout.SOUTH); JPanel aliasPanel = new JPanel(new GridLayout(1, 3, 2, 2)); aliasDataPanel.add(new JLabel("Alias X Coordinate")); aliasDataPanel.add(aliasXCoordField); aliasDataPanel.add(new JLabel("Alias Y Coordinate")); aliasDataPanel.add(aliasYCoordField); JPanel aliasDataLabeled = new JPanel(new BorderLayout()); aliasDataLabeled.add(new JLabel("Exhibit Aliases:"), BorderLayout.NORTH); aliasDataLabeled.add(new JScrollPane(exhibitAliasesList), BorderLayout.CENTER); JPanel aliasButtonsPanel = new JPanel(new GridLayout(2, 1, 2, 2)); aliasButtonsPanel.add(addAliasButton); aliasButtonsPanel.add(removeAliasButton); aliasPanel.add(aliasDataLabeled); aliasPanel.add(aliasDataPanel); aliasPanel.add(aliasButtonsPanel); aliasPanel.setBorder(paddedLine); JPanel groupXCoordPanel = new JPanel(new GridLayout(1, 2, 2, 2)); groupXCoordPanel.add(new JLabel("Group X Coordinate")); groupXCoordPanel.add(groupXCoordField); JPanel groupYCoordPanel = new JPanel(new GridLayout(1, 2, 2, 2)); groupYCoordPanel.add(new JLabel("Group Y Coordinate")); groupYCoordPanel.add(groupYCoordField); JPanel groupDataButtonsPanel = new JPanel(new GridLayout(4, 1, 2, 2)); groupDataButtonsPanel.add(addGroupButton); groupDataButtonsPanel.add(removeGroupButton); groupDataButtonsPanel.add(addGroupExhibitButton); groupDataButtonsPanel.add(removeGroupExhibitButton); JPanel groupLocationPanel = new JPanel(new GridLayout(2, 1, 2, 2)); groupLocationPanel.add(groupXCoordPanel); groupLocationPanel.add(groupYCoordPanel); groupLocationPanel.setBorder(paddedLine); JPanel groupDataPanel = new JPanel(new GridLayout(1, 2, 2, 2)); groupDataPanel.add(groupLocationPanel); groupDataPanel.add(groupDataButtonsPanel); JPanel combinedDataPanel = new JPanel(new GridLayout(2, 1, 2, 2)); combinedDataPanel.add(exhibitDataPanel); combinedDataPanel.add(aliasPanel); combinedDataPanel.setBorder(mediumPaddedBorder); photosPanel.add(new JScrollPane(exhibitPhotosImage)); photosPanel.add(photoPanelRight); photosPanel.setBorder(mediumPaddedBorder); exhibitTabs.add("Exhibit Content", contentPanel); exhibitTabs.add("Exhibit Photos", photosPanel); exhibitTabs.add("Exhibit Properties", combinedDataPanel); mainPanel.add(listPanelTop, BorderLayout.NORTH); mainPanel.add(exhibitTabs, BorderLayout.CENTER); mainPanel.setBorder(mediumPaddedBorder); groupListPanel.add(new JScrollPane(groupNameList)); groupListPanel.add(new JScrollPane(groupExhibitsList)); JPanel fileButtonPanel = new JPanel(new GridLayout(2, 1, 2, 2)); fileButtonPanel.add(newFileButton); fileButtonPanel.add(editFileButton); for (Component c : fileButtonPanel.getComponents()) { JButton b = (JButton) c; b.setBorder(BorderFactory.createCompoundBorder(b.getBorder(), largePaddedBorder)); } JPanel originalListPanel = new JPanel(new BorderLayout()); originalListPanel.add(new JLabel("Original Files:"), BorderLayout.NORTH); originalListPanel.add(new JScrollPane(originalFilesList), BorderLayout.CENTER); originalListPanel.add(viewFileButton, BorderLayout.EAST); JPanel modifiedListPanel = new JPanel(new BorderLayout()); modifiedListPanel.add(new JLabel("Added Files:"), BorderLayout.NORTH); modifiedListPanel.add(new JScrollPane(modifiedFilesList), BorderLayout.CENTER); modifiedListPanel.add(fileButtonPanel, BorderLayout.EAST); JPanel eventImagePanel = new JPanel(new BorderLayout()); eventImagePanel.add(new JLabel("Event Image: "), BorderLayout.WEST); eventImagePanel.add(eventPhotoDropdown, BorderLayout.CENTER); JPanel eventTimePanel = new JPanel(new GridLayout(1, 4, 2, 2)); eventTimePanel.add(new JLabel("Start Date:")); eventTimePanel.add(eventStart); eventTimePanel.add(new JLabel("End Date:")); eventTimePanel.add(eventEnd); JPanel eventsSmallDataPanel = new JPanel(new GridLayout(2, 1, 2, 2)); eventsSmallDataPanel.add(eventTimePanel); eventsSmallDataPanel.add(eventImagePanel); JPanel eventsDataPanel = new JPanel(new BorderLayout()); eventsDataPanel.add(eventName, BorderLayout.NORTH); eventsDataPanel.add(new JScrollPane(eventDescription), BorderLayout.CENTER); eventsDataPanel.add(eventsSmallDataPanel, BorderLayout.SOUTH); JPanel eventButtonsPanel = new JPanel(new GridLayout(1, 2, 2, 2)); eventButtonsPanel.add(addEventButton); eventButtonsPanel.add(removeEventButton); JPanel eventsListPanel = new JPanel(new BorderLayout()); eventsListPanel.add(new JScrollPane(eventsList), BorderLayout.CENTER); eventsListPanel.add(eventButtonsPanel, BorderLayout.SOUTH); JPanel eventsPanel = new JPanel(new GridLayout(2, 1, 2, 2)); eventsPanel.add(eventsListPanel); eventsPanel.add(eventsDataPanel); filePanel.add(originalListPanel); filePanel.add(modifiedListPanel); groupPanel.add(groupListPanel); groupPanel.add(groupDataPanel); groupPanel.setBorder(mediumPaddedBorder); tabbedPane.setBorder(thinPaddedBorder); tabbedPane.addTab("Exhibits", mainPanel); tabbedPane.addTab("Groups", groupPanel); tabbedPane.addTab("Map", mapPanel); tabbedPane.addTab("Files", filePanel); tabbedPane.addTab("Events", eventsPanel); }