bookshoprecordtask.java

来自「主要是对串口驱动的的一些控制源码!!! 在下载javacomm20-win32」· Java 代码 · 共 131 行

JAVA
131
字号
package de.fhm.jkf.bookshop.cl;
/*
 * <br><br><center><table border="1" width="80%"><hr>
 * <strong>
 * <a href="http://jkf.sourceforge.net">The JKF Project</a>
 * </strong>
 * <p>
 * Copyright (C) 2002 by Theodor Willax
 * <p>
 * This library 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 2.1 of the License, or (at your option) any later version.
 * <p>
 * This library 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.
 * <p>
 * You should have received a copy of the <a href="http://www.gnu.org/copyleft/lesser.html">
 * GNU Lesser General Public License</a> along with this library; if not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA  02111-1307  USA
 * <hr></table></center>
 */

import de.fhm.jkf.bookshop.clsv.Book;
import de.fhm.jkf.bookshop.clsv.BookTO;
import de.fhm.jkf.comm.cl.JKFFactory;
import de.fhm.jkf.comm.cl.ObjectFactory;
import de.fhm.jkf.gui.CommunicationException;
import de.fhm.jkf.gui.CommunicationTask;
import de.fhm.jkf.gui.JKFErrorFrame;
import de.fhm.jkf.gui.JKFView;
import de.fhm.jkf.resource.cl.JKFClientLogger;

/**
 * Task for recording new books.
 * 
 * @author Theodor Willax
 * @version $Revision: 1.6 $
 */
public class BookshopRecordTask extends CommunicationTask {
	/**
	 * jndi name for a book entity.
	 */
	private final static String jndiName = "bookshop/Book";
	
	/**
	 * Saves the transfer object which was received from the
	 * server after the create for displaying in the gui thread.
	 */
	private BookTO bookTO = null;

	/**
	 * Constructor for BookshopRecordTask. Passes the
	 * view to the super class.
	 * 
	 * @param panel The view we need for automated data exchange.
	 */
	public BookshopRecordTask(JKFView panel) {
		super(panel);
	}

	/**
	 * Presents the result of the query.
	 * If an exception occured an error frame is shown.
	 * Set's the transfer object in the panel if no error occured.
	 * 
	 * @see de.fhm.jkf.gui.CommunicationTask#doPresentation()
	 */
	public void doPresentation() {
		if (super.getError() != null) {
			Exception e = super.getError();
			JKFClientLogger.error(e.getMessage(), e);
			new JKFErrorFrame(e).show();
			return;
		}
			
		// display the saved information in the view
		try {
			super.getPanel().setTransferObject(this.bookTO);
		} catch (Exception e) {
			JKFClientLogger.error(e.getMessage(), e);
			new JKFErrorFrame(e).show();
		}
	}

	/**
	 * Creates a new book entity instance.
	 * 
	 * @see de.fhm.jkf.gui.CommunicationTask#doQuery()
	 */
	public void doQuery() {
		BookTO to = new BookTO();
		try {
			super.getPanel().getTransferObject(to);
			ObjectFactory factory = JKFFactory.instance().getFactory();

			// prepare parameters for ejbCreate()
			Object[] param = new Object[4];
			param[0] = to.getIsbn();
			param[1] = to.getTitle();
			param[2] = to.getAuthor();
			param[3] = to.getPrice();

			// create the entity bean
			Book book = (Book) factory.createEJB(Book.class, param, jndiName);

			// now let's find the created entity bean by its primary key
			param = new Object[1];
			param[0] = to.getIsbn();
			book = (Book) factory.findByPrimaryKey(Book.class, param, jndiName);
			// save result for displaying in doPresentation()
			this.bookTO = book.getBookTO();
		} catch (Exception e) {
			throw new CommunicationException(e);
		}
	}

	/**
	 * Is called when the query should be interrupted. Only usefull
	 * when a loop is done in the query. The loop should end as soon
	 * as interrupt is called.
	 * 
	 * @see de.fhm.jkf.thread.cl.InterruptableTask#interrupt()
	 */
	public void interrupt() {
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?