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

Last change on this file since 22410 was 22410, checked in by ak19, 14 years ago

Getting collectgroup to work for a remote Greenstone server. Need to update gliserver.pl still to work with the collectgroup changes. 1. GLI side changes: no longer does the collectdir parameter to import and build include the colgroup at the end, it is now back to being everything upto the GS collect dir. Instead, the loaded collection is colgroup/subcolname. 2. Changed CollectionManager.getLoadedCollectionName() to return (colgroup/)subcolname instead of the subcolname excluding groupname. 3. This required changes in other classes, including replacing unnecessary explicit calls to getLoadedGroupQualifiedCollectionName(). 4. Added another variant: getLoadedCollectionName(boolean). If the parameter is true, it will put a url style slash between colgroup and subcolname, otherwise use the OS dependent FileSeparator. 5. Changes to RemoteGreenstoneServer to pass the group/subcol as the collectionname to gliserver.pl, with a vertical bar separator. 6. Minor changes like: WorkspaceTreeNode now knows not to load a collection group if it's already in the loaded collection (previously handed only sub collection name), removed old debugging statements and unused import statements.

  • Property svn:keywords set to Author Date Id Revision
File size: 5.7 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() needs to (and does) return (colgroup/)subcolname
80 String collGroupWithName = CollectionManager.getLoadedCollectionName(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 if(Configuration.library_url == null) {
85 Gatherer.missingEXEC();
86 }
87 // if we now finally have a library URL, then continue with previewing
88 if(Configuration.library_url != null) {
89 // don't do anything fancy here
90 preview_address = Configuration.library_url.toString() + Configuration.getServletPath()
91 + "?a=p&sa=about&c=" + collGroupWithName + "&l=" + Configuration.getLanguage();
92 }
93 return;
94 }
95
96 if(Gatherer.isLocalLibrary) {
97 // check that the local library server is still running - doesn't do anything if it's not supposed to be running
98 // !! Don't like this here
99 LocalLibraryServer.checkServerRunning();
100 if(LocalLibraryServer.isURLPending()) {
101 // Remind the user to press Enter Library, and return from this method
102 JOptionPane.showMessageDialog(Gatherer.g_man,
103 Dictionary.get("General.LLS_Not_Started"),
104 Dictionary.get("General.LLS_Not_Started_Title"),
105 JOptionPane.INFORMATION_MESSAGE);
106 preview_address = null;
107 return;
108 }
109 }
110 // FLI or GLI for GS2 case (no library_url)
111 if(Configuration.fedora_info.isActive()) {
112 preview_address = Configuration.library_url.toString() + "?pid=true&title=true&terms=&query=pid~greenstone:"+collGroupWithName+"*&maxResults=20";
113 //+ "&l=" + Configuration.getLanguage();
114 } else {
115 preview_address = Configuration.library_url.toString() + "?c=" + collGroupWithName + "&l=" + Configuration.getLanguage();
116 }
117
118 String main_args = "&a=p&p=about";
119 /* this code is for switching the preview page depending on what
120 is currently active. but it is not complete yet
121 String main_args = null;
122 String params = null;
123 if (!variable_preview || owner == null) {
124 main_args = "&a=p&p=about";
125 } else {
126 page_type = owner.getPageType();
127 params = owner.getPageParams();
128
129 switch (page_type) {
130 case SEARCH_PAGE:
131 main_args = "&a=q&q="+params;
132 break;
133 case CLASSIFIER_PAGE:
134 main_args = "&a=d&cl="+params;
135 break;
136 case DOCUMENT_PAGE:
137 main_args = "&a=d&d="+params;
138 break;
139 case HOME_PAGE:
140 default:
141 main_args = "&a=p&p=about";
142
143
144 }
145
146
147 }
148 */
149 preview_address += main_args+StaticStrings.TIMESTAMP_ARGUMENT + System.currentTimeMillis();
150
151 }
152 private class PreviewButtonListener
153 implements ActionListener {
154
155 public void actionPerformed(ActionEvent event) {
156 Gatherer.c_man.saveCollection();
157
158 configureHomeURL();
159
160 if (Gatherer.GS3) {
161 // we need to rerun the convert in case the format stuff has changed
162 //for gs3, we don't need this anymore: Gatherer.c_man.convertToGS3Collection();
163 Gatherer.configGS3Server(Configuration.site_name, ServletConfiguration.ADD_COMMAND + Gatherer.c_man.getLoadedCollectionName());
164 }
165 if(preview_address != null) {
166 Gatherer.spawnBrowser(preview_address);
167 }
168
169 }
170
171 }
172
173}
Note: See TracBrowser for help on using the repository browser.