indexing
	description: "This class is responsible for logical campaign file interface features."
	author: "Larry Bush"
	date: "$Date: Date: 2001/04/21 $"
	revision: "$Revision: 1.00$"

-- Larry Bush
-- OOPD "Spring" (seems more like winter) 2001
-- Email:  Lawrence_Bush@dps.state.ny.us 
-- Home Phone (Weekends and Evenings) : (518) 674-0408 
-- Work Phone (M-F day):  (518) 486-2896

--  This file is responsible for:
--  
--  CAMPAIGN_FILE_INTERFACE Class:
--  
--  Inheritance Hierarchy:	Inherits from FILE_INTERFACE
--  
--  What it does:  		CFI is just interested in tracking down the names of files.
--  
--  Major Features:		CFI – 	get_campaign_file_name
--  
--  
--  class code
deferred class
	CAMPAIGN_FILE_INTERFACE

inherit

	FILE_INTERFACE

feature -- declarations
  file_type : STRING is "Campaign"
  -- Single place identifying what are in these files.

  campaign_extension : STRING is "cmp"
  -- Single place identifying campaing file extension.

  solve_extension : STRING is "cmp"
  -- Single place identifying files extension for finalized.

  design_extension : STRING is "cip"
  -- Single place identifying files extension for campaigns in progress.

-- various needed folders from configuration
-- needed for 
	--make_retrieve_puzzle_file_dialog

  puzzle_folder : STRING is
  once
    Result := clone( configuration.puzzle_folder )
  end

  campaign_folder : STRING is
  once
    Result := clone( configuration.campaign_folder )
  end

feature
  get_campaign_file_name : STRING is
  -- gets a campaign file name to play.
  --  logical portion of this feature which calls the appropriate deferred
  --  features to get the file name somehow, this class does not know entirely how.
  do
    make_retrieve_campaign_file_dialog
    get_file_name
    Result := file_name
  end

  get_campaign_in_progress_file_name : STRING is
  -- gets a campaign design in progress to open.
  --  logical portion of this feature which calls the appropriate deferred
  --  features to get the file name somehow, this class does not know entirely how.
  do
    make_retrieve_campaign_in_progress_file_dialog 
    get_file_name
    Result := file_name
  end

  get_file_name_for_saving : STRING is
  -- gets a campaign file name for saving.
  --  logical portion of this feature which calls the appropriate deferred
  --  features to get the file name somehow, this class does not know entirely how.
  do
    make_save_campaign_file_dialog 
    get_file_name
    Result := file_name
  end

  get_file_name_for_finalizing : STRING is
  -- gets a campaign file name to finalize.
  --  logical portion of this feature which calls the appropriate deferred
  --  features to get the file name somehow, this class does not know entirely how.
    do
      make_finalize_campaign_file_dialog 
      get_file_name
      Result := file_name
  end

  make_retrieve_campaign_file_dialog is
    deferred
  end

  make_retrieve_campaign_in_progress_file_dialog is
    deferred
  end

  make_save_campaign_file_dialog is
    deferred
  end

  make_finalize_campaign_file_dialog is
    deferred
  end

end -- class CAMPAIGN_FILE_INTERFACE


