/*
* Copyright 2003-2010 Tufts University Licensed under the
* Educational Community License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may
* obtain a copy of the License at
*
* http://www.osedu.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS"
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* AddRemoveDataSourceDialog.java
* The UI to Add/Remove Datasources.
* Created on June 8, 2004, 5:07 PM
*/
package tufts.vue;
/**
* @version $Revision: 1.8 $ / $Date: 2010-02-03 19:17:41 $ / $Author: mike $
* @author akumar03
*/
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.awt.*;
public class GetLibraryInfoDialog extends JDialog implements java.awt.event.ActionListener {
private edu.tufts.vue.dsm.DataSource dataSource = null;
private org.osid.repository.Repository repository = null;
java.awt.GridBagLayout gbLayout = new java.awt.GridBagLayout();
java.awt.GridBagConstraints gbConstraints = new java.awt.GridBagConstraints();
JPanel getLibraryInfoPanel = new JPanel();
JPanel buttonPanel = new JPanel();
JButton okButton = new JButton(VueResources.getString("button.ok.label"));
JLabel libraryIcon;
public GetLibraryInfoDialog(edu.tufts.vue.dsm.DataSource dataSource)
{
super(VUE.getDialogParentAsFrame(),"INFO",true);
try {
this.dataSource = dataSource;
repository = dataSource.getRepository();
getLibraryInfoPanel.setBackground(VueResources.getColor("White"));
setBackground(VueResources.getColor("White"));
okButton.addActionListener(this);
buttonPanel.add(okButton);
getRootPane().setDefaultButton(okButton);
gbConstraints.anchor = java.awt.GridBagConstraints.WEST;
gbConstraints.insets = new java.awt.Insets(2,2,2,2);
getLibraryInfoPanel.setLayout(gbLayout);
makePanel();
javax.swing.JScrollPane jsp = new javax.swing.JScrollPane(getLibraryInfoPanel);
jsp.setPreferredSize(new java.awt.Dimension(600,500));
jsp.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jsp.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
getContentPane().add(jsp,BorderLayout.WEST);
pack();
setLocation(300,300);
setSize(new Dimension(600,500));
} catch (Throwable t) {
t.printStackTrace();
}
}
private void makePanel()
{
try {
gbConstraints.gridx = 0;
gbConstraints.gridy = 0;
libraryIcon = new JLabel(VueResources.getImageIcon("NoImage"));
libraryIcon.setPreferredSize(new Dimension(80,80));
getLibraryInfoPanel.add(libraryIcon,gbConstraints);
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.repositoryid")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(repository.getId().getIdString()),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.name")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(repository.getDisplayName()),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.description")),gbConstraints);
gbConstraints.gridx = 1;
String description = repository.getDescription();
int descriptionLength = description.length();
int numCharacters = 60;
int rows = descriptionLength / numCharacters + 1;
for (int x=0; x < rows-1; x++) {
getLibraryInfoPanel.add(new javax.swing.JLabel(description.substring(x * numCharacters,x * numCharacters + numCharacters)),gbConstraints);
gbConstraints.gridy++;
}
if (descriptionLength > 1) {
getLibraryInfoPanel.add(new javax.swing.JLabel(description.substring((rows-1) * numCharacters)),gbConstraints);
gbConstraints.gridy++;
}
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.type")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(edu.tufts.vue.util.Utilities.typeToString(repository.getType())),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
System.out.println("Data Source1 " + dataSource);
System.out.println("creatpr " + dataSource.getCreator());
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.creator")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(dataSource.getCreator()),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.publisher")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(dataSource.getPublisher()),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.releasedate")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(edu.tufts.vue.util.Utilities.dateToString(dataSource.getReleaseDate())),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.providerid")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(dataSource.getProviderId().getIdString()),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.osidservice")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(dataSource.getOsidVersion()),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.osidloadkey")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(dataSource.getOsidLoadKey()),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.providerdisplayname")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel(dataSource.getProviderDisplayName()),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.providerdescription")),gbConstraints);
gbConstraints.gridx = 1;
description = dataSource.getProviderDescription();
descriptionLength = description.length();
rows = descriptionLength / numCharacters + 1;
for (int x=0; x < rows-1; x++) {
getLibraryInfoPanel.add(new javax.swing.JLabel(description.substring(x * numCharacters,x * numCharacters + numCharacters)),gbConstraints);
gbConstraints.gridy++;
}
if (descriptionLength > 1) {
getLibraryInfoPanel.add(new javax.swing.JLabel(description.substring((rows-1) * numCharacters)),gbConstraints);
gbConstraints.gridy++;
}
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.online")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel( (dataSource.isOnline()) ? VueResources.getString("jlabel.yes") : VueResources.getString("jlabel.no") ),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.supportsupdate")),gbConstraints);
gbConstraints.gridx = 1;
getLibraryInfoPanel.add(new javax.swing.JLabel( (dataSource.supportsUpdate()) ? VueResources.getString("jlabel.libsupportuopdate") : VueResources.getString("jlabel.libisreadonly")),gbConstraints);
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.assettype")),gbConstraints);
gbConstraints.gridx = 1;
org.osid.shared.TypeIterator typeIterator = repository.getAssetTypes();
while (typeIterator.hasNextType()) {
getLibraryInfoPanel.add(new javax.swing.JLabel(edu.tufts.vue.util.Utilities.typeToString(typeIterator.nextType())),gbConstraints);
gbConstraints.gridy++;
}
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(VueResources.getString("jlabel.searchtype")),gbConstraints);
gbConstraints.gridx = 1;
typeIterator = repository.getSearchTypes();
while (typeIterator.hasNextType()) {
getLibraryInfoPanel.add(new javax.swing.JLabel(edu.tufts.vue.util.Utilities.typeToString(typeIterator.nextType())),gbConstraints);
gbConstraints.gridy++;
}
/*
java.awt.Image image = null;
if ( (image = dataSource.getImageForRepository()) != null ) {
gbConstraints.gridx = 0;
gbConstraints.gridy++;
getLibraryInfoPanel.add(new javax.swing.JLabel(new javax.swing.ImageIcon(image)),gbConstraints);
}
*/
} catch (Throwable t) {
t.printStackTrace();
}
}
public void actionPerformed(java.awt.event.ActionEvent ae)
{
if (ae.getActionCommand().equals("OK")) {
setVisible(false);
}
}
public String toString()
{
return "GetLibraryInfoDialog";
}
}