/*
* Copyright (C) 2008 Universidade Federal de Campina Grande
*
* This file is part of OurGrid.
*
* OurGrid is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.ourgrid.worker.ui.async.gui;
import java.awt.Frame;
import javax.swing.ActionMap;
import javax.swing.JFrame;
import org.jdesktop.swingx.JXTaskPaneContainer;
import org.ourgrid.common.interfaces.status.WorkerCompleteStatus;
import org.ourgrid.worker.ui.async.gui.actions.PauseWorkerAction;
import org.ourgrid.worker.ui.async.gui.actions.ResumeWorkerAction;
import org.ourgrid.worker.ui.async.gui.actions.StartWorkerAction;
import org.ourgrid.worker.ui.async.gui.actions.StopWorkerAction;
import org.ourgrid.worker.ui.async.model.WorkerAsyncUIListener;
/**
* Panel that provide the actions to the worker.
*/
public class ActionsPanel extends javax.swing.JPanel implements WorkerAsyncUIListener {
private static final long serialVersionUID = 1L;
private static final String START_WORKER_ACTION = "worker.start.action";
private static final String STOP_WORKER_ACTION = "worker.stop.action";
private static final String PAUSE_WORKER_ACTION = "worker.pause.action";
private static final String RESUME_WORKER_ACTION = "worker.resume.action";
private JXTaskPaneContainer jXTaskPaneContainer;
private StartWorkerAction startAction;
private StopWorkerAction stopAction;
private ResumeWorkerAction resumeAction;
private PauseWorkerAction pauseAction;
/** Creates new form ActionsPanel */
public ActionsPanel(Frame frame) {
initComponents();
initActions(frame);
}
/**
* Initializes the Actions that will appear at this panel.
* @param frame The frame where this panel is, it is necessary to open
* other panels on it.
* @param componentClient The client of the peer.
*/
private void initActions(Frame frame) {
JFrame jFrame = (JFrame) frame;
startAction = new StartWorkerAction(jFrame.getContentPane());
stopAction = new StopWorkerAction(jFrame.getContentPane());
resumeAction = new ResumeWorkerAction();
pauseAction = new PauseWorkerAction();
controlTaskPane.add(startAction);
controlTaskPane.add(stopAction);
controlTaskPane.add(resumeAction);
controlTaskPane.add(pauseAction);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jXTaskPaneContainer = new org.jdesktop.swingx.JXTaskPaneContainer();
controlTaskPane = new org.jdesktop.swingx.JXTaskPane();
controlTaskPane.setTitle("Control"); // NOI18N
jXTaskPaneContainer.add(controlTaskPane);
ActionMap actionMap = new ActionMap();
actionMap.put(START_WORKER_ACTION, startAction);
actionMap.put(STOP_WORKER_ACTION, stopAction);
actionMap.put(PAUSE_WORKER_ACTION, pauseAction);
actionMap.put(RESUME_WORKER_ACTION, resumeAction);
jXTaskPaneContainer.setActionMap(actionMap);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jXTaskPaneContainer, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jXTaskPaneContainer, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)
);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private org.jdesktop.swingx.JXTaskPane controlTaskPane;
// End of variables declaration//GEN-END:variables
/**
* Enable the actions that are permited when the
* worker has been started.
*/
public void workerStarted() {
startAction.setEnabled(false);
stopAction.setEnabled(true);
workerResumed();
}
public void workerPaused() {
pauseAction.setEnabled(false);
resumeAction.setEnabled(true);
}
public void workerResumed() {
pauseAction.setEnabled(true);
resumeAction.setEnabled(false);
}
/**
* Enable the actions that are permited when the
* worker has been stopped.
*/
public void workerStopped() {
startAction.setEnabled(true);
stopAction.setEnabled(false);
resumeAction.setEnabled(false);
pauseAction.setEnabled(false);
}
public void workerInited() {
startAction.setEnabled(false);
stopAction.setEnabled(false);
resumeAction.setEnabled(false);
pauseAction.setEnabled(false);
}
public void workerInitedFailed() {
workerInited();
}
public void updateCompleteStatus(WorkerCompleteStatus completeStatus) {
// TODO Auto-generated method stub
}
public void setStartEnabled(boolean enabled) {
startAction.setEnabled(enabled);
}
public void workerRestarted() {
workerInited();
}
public void workerEditing() {
workerInited();
}
}