public boolean allocationActionPerformed(AllocationAction action) {
		ActionType type = action.getActionType();
		LinkedList<ScheduleItem> list = action.getScheduleItems();
		double previousTime = currentTime;
		currentTime = GridSim.clock();
		
		if (type == ActionType.ITEM_ARRIVED) {
				for(ScheduleItem item : list){
					scheduledItems.add(item);
					pnItem.insertNewItem(item);
				}
				updateResourceWindow();
		} 
		else if (type == ActionType.ITEM_STATUS_CHANGED) {
				pnItem.updateItem(list.getLast());
				updateResourceWindow();
		} 
		else if (type == ActionType.ITEM_SCHEDULED) {
				for(ScheduleItem item : list){
					long finishTime = (long)item.getActualFinishTime();
					settings.setTimeSpan(finishTime);
				}
				pnItem.updateItem(list.getLast());
				updateResourceWindow();
		} 
		else if (type == ActionType.ITEM_CANCELLED) {
				for(ScheduleItem item : list){
					scheduledItems.remove(item);
				}
				pnItem.updateItem(list.getLast());
				updateResourceWindow();
		} 
		else if (type == ActionType.SIMULATION_TIME_CHANGED) {
				if(currentTime > previousTime) {
					updateResourceWindow();
				}
		} 
		else {
			updateResourceWindow();
		}
		
		return true;
	}