diff -r 000000000000 -r a02c979e8dfd srcanaapps/apiquerytool/com.nokia.s60tools.apiquery/src/com/nokia/s60tools/apiquery/servlets/ReportActionServlet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srcanaapps/apiquerytool/com.nokia.s60tools.apiquery/src/com/nokia/s60tools/apiquery/servlets/ReportActionServlet.java Sat Jan 09 10:04:11 2010 +0530 @@ -0,0 +1,194 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +package com.nokia.s60tools.apiquery.servlets; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.Servlet; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; + +import com.nokia.s60tools.apiquery.popup.actions.CheckIdentifierAction; +import com.nokia.s60tools.apiquery.popup.actions.OpenFileAction; +import com.nokia.s60tools.apiquery.settings.UserSettings; +import com.nokia.s60tools.apiquery.shared.exceptions.QueryOperationFailedException; +import com.nokia.s60tools.apiquery.shared.resources.Messages; +import com.nokia.s60tools.apiquery.shared.searchmethod.ISearchMethodExtension; +import com.nokia.s60tools.apiquery.shared.ui.dialogs.APIQueryMessageBox; +import com.nokia.s60tools.apiquery.shared.util.console.APIQueryConsole; +import com.nokia.s60tools.apiquery.ui.views.main.MainView; + +/** + * Servlet that takes request from API Query report and forwards it to action. + * Web Server inside Carbide must be up and running when Servlet is executed. + * + * The Web server is running when API Query {@link MainView} is alive. + * + * @see APIQueryWebServerConfigurator#startServer() + */ +public class ReportActionServlet extends HttpServlet implements Servlet { + + + /** + * Default ID. + */ + private static final long serialVersionUID = 1L; + + + + /* (non-Javadoc) + * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) + */ + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + String queryType = req.getParameter(ReportActionConstants.ACTION_QUERY_TYPE); + try { + String projectName; + if(req.getParameter(ReportActionConstants.ACTION_QUERY_TYPE) != null){ + int type = 1; + if(queryType != null){ + type = Integer.parseInt(queryType); + } + String searchString = (String) req.getParameter(ReportActionConstants.PARAM_QUERY_FOR); + runAPIQueryFor(searchString, type); + } + else if(req.getParameter(ReportActionConstants.ACTION_OPEN_USED_HEADER) != null){ + String headerName = (String) req.getParameter(ReportActionConstants.ACTION_OPEN_USED_HEADER); + projectName = (String) req.getParameter(ReportActionConstants.PARAM_PROJECT_NAME); + openFileFromSDK(headerName, projectName); + } + else if(req.getParameter(ReportActionConstants.ACTION_OPEN_USING_FILE) != null){ + String fileName = (String) req.getParameter(ReportActionConstants.ACTION_OPEN_USING_FILE); + projectName = (String) req.getParameter(ReportActionConstants.PARAM_PROJECT_NAME); + openFileFromProject(fileName, projectName); + } + else{ + String msg = Messages.getString("ReportActionServlet.NotSupportedAction_Msg"); //$NON-NLS-1$ + APIQueryConsole.getInstance().println(msg); + } + + + PrintWriter out = resp.getWriter(); + //When actual servlet page is loaded (Action is launched) directing user back where come from + //by loading java script on body load. + out.println("\n" + //$NON-NLS-1$ + "\n" + //$NON-NLS-1$ + "