/** * Copyright 2008 Google Inc. * * Licensed under the Apache 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.apache.org/licenses/LICENSE-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. */ package com.google.gwt.dev; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.dev.shell.WrapLayout; import com.google.gwt.dev.shell.log.SwingLoggerPanel; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; import javax.swing.JButton; import javax.swing.JPanel; /** */ public class WebServerPanel extends JPanel { /** * Callback interface for when the server should be restarted. */ public interface RestartAction { void restartServer(TreeLogger logger); } private SwingLoggerPanel logWindow; public WebServerPanel(int serverPort, TreeLogger.Type maxLevel, File logFile) { this(serverPort, maxLevel, logFile, null); } /** * @param serverPort the server port number */ public WebServerPanel(int serverPort, TreeLogger.Type maxLevel, File logFile, final RestartAction restartServerAction) { super(new BorderLayout()); logWindow = new SwingLoggerPanel(maxLevel, logFile); if (restartServerAction != null) { JPanel panel = new JPanel(new WrapLayout()); JButton restartButton = new JButton("Restart Server"); restartButton.setMnemonic(KeyEvent.VK_R); restartButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { restartServerAction.restartServer(getLogger()); } }); panel.add(restartButton); add(panel, BorderLayout.NORTH); } add(logWindow); } public TreeLogger getLogger() { return logWindow.getLogger(); } }