001/* 002 * Copyright (c) 2005 Einar Pehrson <einar@pehrson.nu>. 003 * 004 * This file is part of 005 * CleanSheets - a spreadsheet application for the Java platform. 006 * 007 * CleanSheets is free software; you can redistribute it and/or modify 008 * it under the terms of the GNU General Public License as published by 009 * the Free Software Foundation; either version 2 of the License, or 010 * (at your option) any later version. 011 * 012 * CleanSheets is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 015 * GNU General Public License for more details. 016 * 017 * You should have received a copy of the GNU General Public License 018 * along with CleanSheets; if not, write to the Free Software 019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 020 */ 021package csheets; 022 023import java.io.File; 024import java.util.EventObject; 025 026import csheets.core.Workbook; 027 028/** 029 * A spreadsheet application event is used to notify interested parties that 030 * a workbook has been created, loaded or stored. The event provides 031 * information about the workbook in which the event occurred, and about 032 * the file in which it is stored, if any. 033 * @author Einar Pehrson 034 */ 035public class SpreadsheetAppEvent extends EventObject { 036 037 /** The serialVersionUID of the SpreadsheetAppEvent.java */ 038 private static final long serialVersionUID = -8589956625032669055L; 039 040 /** The types of events that are fired from a spreadsheet application */ 041 public enum Type { 042 043 /** Denotes that a workbook was created */ 044 CREATED, 045 046 /** Denotes that a workbook was loaded */ 047 LOADED, 048 049 /** Denotes that a workbook was unloaded */ 050 UNLOADED, 051 052 /** Denotes that a workbook was saved */ 053 SAVED, 054 } 055 056 /** The workbook that was affected. */ 057 private Workbook workbook; 058 059 /** The file in which the project is stored. */ 060 private File file; 061 062 /** The type of the event */ 063 private Type type; 064 065 /** 066 * Creates a new spreadsheet application event, 067 * belonging to a workbook stored in a file. 068 * @param source the source of the event 069 * @param workbook the workbook that was affected 070 * @param file the file in which the workbook is stored 071 * @param type the type of the event 072 */ 073 public SpreadsheetAppEvent(Object source, Workbook workbook, 074 File file, Type type) { 075 super(source); 076 077 // Stores members 078 this.workbook = workbook; 079 this.file = file; 080 this.type = type; 081 } 082 083 /** 084 * Returns the workbook that was affected by the event. 085 * @return the affected workbook 086 */ 087 public Workbook getWorkbook() { 088 return workbook; 089 } 090 091 /** 092 * Returns the file in which the workbook is stored. 093 * @return the file in which the workbook is stored 094 */ 095 public File getFile() { 096 return file; 097 } 098 099 /** 100 * Returns the type of the event. 101 * @return the type of the event 102 */ 103 public Type getType() { 104 return type; 105 } 106}