source: gli/trunk/src/org/greenstone/gatherer/gui/PreviewButton.java@ 19507

Last change on this file since 19507 was 19507, checked in by ak19, 15 years ago

Part of changes to how GLI deals with an independently launched GSI which uses llssite.cfg (as opposed to one that GLI launches and which uses glisite.cfg). Still need to commit the changes in LocalLibraryServer.java

  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 KB
Line 
1/**
2 *#########################################################################
3 *
4 * A component of the Gatherer application, part of the Greenstone digital
5 * library suite from the New Zealand Digital Library Project at the
6 * University of Waikato, New Zealand.
7 *
8 * Copyright (C) 2006 New Zealand Digital Library Project
9 *
10 * <BR><BR>
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * <BR><BR>
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * <BR><BR>
25 *
26 * You should have received a copy of the GNU General Public License
27 * along with this program; if not, write to the Free Software
28 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
29 *########################################################################
30 */
31package org.greenstone.gatherer.gui;
32
33import java.awt.*;
34import java.awt.event.*;
35import javax.swing.*;
36import org.greenstone.gatherer.Configuration;
37import org.greenstone.gatherer.Dictionary;
38import org.greenstone.gatherer.Gatherer;
39import org.greenstone.gatherer.collection.CollectionManager;
40import org.greenstone.gatherer.greenstone.LocalLibraryServer;
41import org.greenstone.gatherer.greenstone3.ServletConfiguration;
42import org.greenstone.gatherer.util.StaticStrings;
43
44
45public class PreviewButton
46 extends GLIButton {
47
48
49 static final public int HOME_PAGE = 1;
50 static final public int SEARCH_PAGE = 2;
51 static final public int CLASSIFIER_PAGE = 3;
52 static final public int DOCUMENT_PAGE = 4;
53
54 private String preview_address;
55 private int page_type = HOME_PAGE;
56 private boolean variable_preview = false;
57
58 private PreviewButtonOwner owner = null;
59 public PreviewButton() {
60 super();
61 PreviewButtonListener pbl = new PreviewButtonListener();
62 addActionListener(pbl);
63 }
64 public PreviewButton(String text, String tooltip) {
65 super(text, tooltip);
66 PreviewButtonListener pbl = new PreviewButtonListener();
67 addActionListener(pbl);
68 }
69
70 public void setOwner(PreviewButtonOwner o) {
71 owner = o;
72 }
73 public void setVariablePreview(boolean vp) {
74 variable_preview = vp;
75 }
76 protected void configureHomeURL() {
77 // we could be working with standalone collections or collection groups
78 // so getting a collection-name may have a collection group prefix
79 // This means CollectionManager.getLoadedCollectionName() is no longer sufficient
80 String collGroupWithName = CollectionManager.getLoadedGroupQualifiedCollectionName(true);
81
82 // set up the home page for the current collection
83 if (Gatherer.GS3 && !Configuration.fedora_info.isActive()) { // GLI for GS3 case
84 // don't do anything fancy here
85 preview_address = Configuration.library_url.toString() + Configuration.getServletPath()
86 + "?a=p&sa=about&c=" + collGroupWithName + "&l=" + Configuration.getLanguage();
87 return;
88 }
89
90 // check that the local library server is still running - doesn't do anything if it's not supposed to be running
91 // !! Don't like this here
92 LocalLibraryServer.checkServerRunning();
93
94 // FLI or GLI for GS2 case (no library_url)
95 preview_address = Configuration.library_url.toString() + "?c=" + collGroupWithName + "&l=" + Configuration.getLanguage();
96
97 String main_args = "&a=p&p=about";
98 /* this code is for switching the preview page depending on what
99 is currently active. but it is not complete yet
100 String main_args = null;
101 String params = null;
102 if (!variable_preview || owner == null) {
103 main_args = "&a=p&p=about";
104 } else {
105 page_type = owner.getPageType();
106 params = owner.getPageParams();
107
108 switch (page_type) {
109 case SEARCH_PAGE:
110 main_args = "&a=q&q="+params;
111 break;
112 case CLASSIFIER_PAGE:
113 main_args = "&a=d&cl="+params;
114 break;
115 case DOCUMENT_PAGE:
116 main_args = "&a=d&d="+params;
117 break;
118 case HOME_PAGE:
119 default:
120 main_args = "&a=p&p=about";
121
122
123 }
124
125
126 }
127 */
128 preview_address += main_args+StaticStrings.TIMESTAMP_ARGUMENT + System.currentTimeMillis();
129
130 }
131 private class PreviewButtonListener
132 implements ActionListener {
133
134 public void actionPerformed(ActionEvent event) {
135 Gatherer.c_man.saveCollection();
136
137 if(LocalLibraryServer.isURLPending()) {
138 // Remind the user to press Enter Library, and return from this method
139 JOptionPane.showMessageDialog(Gatherer.g_man,
140 Dictionary.get("General.LLS_Not_Started"),
141 Dictionary.get("General.LLS_Not_Started_Title"),
142 JOptionPane.ERROR_MESSAGE);
143 return;
144
145 } else {
146 configureHomeURL();
147 }
148
149 if (Gatherer.GS3) {
150 // we need to rerun the convert in case the format stuff has changed
151 //for gs3, we don't need this anymore: Gatherer.c_man.convertToGS3Collection();
152 Gatherer.configGS3Server(Configuration.site_name, ServletConfiguration.ADD_COMMAND + Gatherer.c_man.getLoadedCollectionName());
153 }
154 Gatherer.spawnBrowser(preview_address);
155
156 }
157
158 }
159
160}
Note: See TracBrowser for help on using the repository browser.