/// <summary> /// Two parameter constructor to be used with opening a saved file /// </summary> /// <param name="view"></param> /// <param name="model"></param> public Controller(ISpreadsheetView view, Spreadsheet model, String filename) : this(view) { this.model = model; this.window = view; window.Title = filename; window.OpenSS(); }
/// <summary> /// Initializes a controller for the given window. /// This is the controlling component in the MVC framework. /// </summary> /// <param name="window"></param> public Controller(ISpreadsheetView window, ISpreadsheetServer server, String SpreadsheetName) { _window = window; _server = server; _spreadsheetName = SpreadsheetName; SelectedCell = new GuiCell(0, 0); Spreadsheet = new Spreadsheet(); _random = new Random(); Clients = new Dictionary <string, Client>(); // Event Subscriptions _window.CellValueBoxTextComplete += CellValueBarChanged; _window.CellSelectionChange += SpreadsheetSelectionChanged; _window.CreateNew += CreateNew; _window.HandleOpen += () => HandleOpen(null); _window.HandleSave += () => HandleSave(_savePath); _window.HandleSaveAs += () => HandleSave(null); _window.HandleClose += HandleClose; _window.HandleHelp += WindowOnHandleHelp; _window.HandleUndo += Undo; //Setup defaults _window.SetSelection(SelectedCell.CellColumn, SelectedCell.CellRow); UpdateInfoBar($"{SelectedCell.CellName}: { SelectedCell.GetCellValue(Spreadsheet)}", Color.White); UpdateCellNameText(); _window.SetTitle(_spreadsheetName); }
/// <summary> /// Default constructor /// </summary> /// <param name="window"></param> public Controller(ISpreadsheetView window) { this.window = window; this.sheet = new Spreadsheet(new Regex("^[A-Z][1-9][0-9]?$")); this.selectedCell = "A1"; this.previousFile = null; eventSetup(); }
/// <summary> /// Constructor that reads in file /// </summary> public Controller(ISpreadsheetView window, TextReader file) { this.window = window; this.sheet = new Spreadsheet(file, new Regex("^[A-Z][1-9][0-9]?$")); this.selectedCell = "A1"; this.previousFile = file.ToString(); eventSetup(); }
/// <summary> /// Creates a controller with a saved spreadsheet /// </summary> /// <param name="window">The view of the MVC</param> /// <param name="spreadsheet">The saved spreadsheet</param> public Controller(ISpreadsheetView window, Spreadsheet spreadsheet) : this(window) { this.spreadsheet = spreadsheet; foreach (string cellName in spreadsheet.GetNamesOfAllNonemptyCells()) { HandleCellContentsChanged(cellName, spreadsheet.GetCellContents(cellName).ToString()); } }
/// <summary> /// Initializes a new instance of the <see cref="SpreadsheetController"/> class. This /// class is the control of the Spreadsheet GUI implementation, it handles the interface /// between the model and the view. /// </summary> /// <param name="view">The view.</param> public SpreadsheetController(ISpreadsheetView view) { this.spreadsheetView = view; model = new Spreadsheet(); view.loadSS += HandleLoadSS; view.saveSS += HandleSaveSS; view.closeSS += HandleCloseSS; view.cellContentsChanged += HandleCellWithNameChangedContents; view.cellHighlighted += HandleCellHighlighted; view.windowExited += HandleWindowExit; }
/// <summary> /// Creates a new controller with a new spreadsheet. /// </summary> /// <param name="window">The view of the MVC</param> public Controller(ISpreadsheetView window) { this.window = window; spreadsheet = new Spreadsheet(new Regex("^[A-Za-z][1-9][0-9]?$")); window.CellContentsChanged += HandleCellContentsChanged; window.CellSelected += HandleCellSelected; window.FileChosenEvent += HandleOpen; window.SaveEvent += HandleSave; window.CloseEvent += HandleClose; window.NewEvent += HandleNew; HandleCellSelected(0, 0); }
/// <summary> /// Constructor. Events hooking handlers /// </summary> /// <param name="window"></param> public Controller(ISpreadsheetView window) { this.window = window; this.model = new Spreadsheet(); window.CloseEvent += HandleClose; window.NewEvent += HandleNew; window.HelpEvent += HandleHelp; window.OpenEvent += HandleOpen; window.SaveEvent += HandleSave; window.ContentEvent += HandleContent; window.GetContentEvent += HandleContentGet; }
/// <summary> /// Initilizes a new instance of the <see cref="SpreadsheetController"/> with /// a filename parameter. This constructor is to be used for load operations. /// </summary> /// <param name="view">The window being displayed</param> /// <param name="filename">The filepath of the object being loaded</param> public SpreadsheetController(ISpreadsheetView view, string filename) { this.spreadsheetView = view; view.loadSS += HandleLoadSS; view.saveSS += HandleSaveSS; view.closeSS += HandleCloseSS; view.cellContentsChanged += HandleCellWithNameChangedContents; view.cellHighlighted += HandleCellHighlighted; view.windowExited += HandleWindowExit; model = null; DoLoad(filename); }
/// <summary> /// Begins controlling window. /// </summary> public Controller(ISpreadsheetView window) { this.window = window; this.model = new Spreadsheet(); window.FileChosenEvent += HandleFileChosen; window.CloseEvent += HandleClose; window.NewEvent += HandleNew; window.UpdateCell += HandleCell; window.CellClicked += HandleCellChanged; window.SP.SelectionChanged += HandleCellChanged; window.HelpEvent += DisplayHelp; window.SaveEvent += SaveFile; window.CheckChanged += CheckIfChanged; }
/// <summary> /// A public constructor that creates a new controller that is associated with the passed in /// window and has no data stored in the model. /// </summary> /// <param name="_window">A GUI that the controller can interact with</param> public Controller(ISpreadsheetView _window) { window = _window; spreadsheet = new Spreadsheet(); // Ensure that all of the events that the window has are handled by the controller window.CloseEvent += HandleCloseEvent; window.OpenEvent += HandleOpenEvent; window.SaveEvent += HandleSaveEvent; window.NewEvent += HandleNewEvent; window.ChangeContents += HandleChangeContents; window.NewCellSelected += HandleNewCellSelected; }
public Controller(ISpreadsheetView window) { this.window = window; spreadsheet = new Spreadsheet(); activeCell = "A1"; window.CloseEvent += HandleClose; window.XCloseEvent += XHandleClose; window.FileChosenEvent += HandleFileChosen; window.NewEvent += HandleNew; window.SelectionEvent += HandleSelectionChanged; window.ContentsEvent += HandleContentsBoxChange; window.FileSaveEvent += HandleSaveChosen; window.HelpEvent += HandleHelp; }
public Controller(ISpreadsheetView spreadsheetView) { this.spreadsheetView = spreadsheetView; spreadsheet = new Spreadsheet(); spreadsheetView.SetContentEvent += HandleSetContent; spreadsheetView.CloseEvent += HandleClose; spreadsheetView.HelpSpreadsheetEvent += HandleSpreadsheetHelp; spreadsheetView.HelpFileEvent += HandleFileHelp; spreadsheetView.SelectionChangeEvent += HandleSelectionChange; spreadsheetView.NewEvent += HandleNew; spreadsheetView.DidChangeEvent += HandleDidChange; spreadsheetView.SaveEvent += HandleSave; spreadsheetView.OpenEvent += HandleOpen; }
/// <summary> /// Takes in interface and begins controlling the window /// </summary> public Controller(ISpreadsheetView window) { this.window = window; model = new Spreadsheet(); window.NewEvent += HandleNew; window.OpenEvent += HandleOpen; window.SaveEvent += HandleSave; window.SaveAsEvent += HandleSaveAs; window.CloseEvent += HandleClose; window.SetCellContentEvent += HandleCellContents; window.sp.SelectionChanged += displaySelection; window.ArrowKeyEvent += HandleArrowKey; }
/// <summary> /// Creates a new controller that is based off of the passed in window and contains all of /// the data stored in the passed in file. Error checking will have been done by a previous /// controller, so the passed in file will always be readable. /// </summary> /// <param name="_window">The GUI that the controller can interact with</param> /// <param name="filename">The name of the file containing the data to be read</param> public Controller(ISpreadsheetView _window, string filename) : this(_window) { int col, row; Regex r = new Regex(@"^[a-zA-Z][1-9][0-9]?$"); using (StreamReader sw = new StreamReader(filename)) { spreadsheet = new Spreadsheet(sw, r); } foreach (string cell in spreadsheet.GetNamesOfAllNonemptyCells()) { toCoordinates(cell, out col, out row); window.SetValue(col, row, spreadsheet.GetCellValue(cell).ToString()); } window.SetTitle(filename); HandleNewCellSelected(); }
/// <summary> /// Begins controlling the supplied window with an already-created spreadsheet. /// </summary> public Controller(string fileName, ISpreadsheetView viewWindow) { if (fileName == "") { return; } System.IO.TextReader source = new System.IO.StreamReader(fileName); spreadsheet = new Spreadsheet(source, new Regex("^[a-z|A-Z][1-9][0-9]{0,1}$")); source.Close(); window = viewWindow; InitializeWindow(); foreach (string cell in spreadsheet.GetNamesOfAllNonemptyCells()) { HandleSelectedCellChanged(cell); } }
/// <summary> /// Used to initialize interface, sheet reference and window title for Controller's /// constructors. Also, tie all the events defined in SpreadsheetWindow /// </summary> /// <param name="window"></param> /// <param name="sheet"></param> /// <param name="title"></param> private void Inititalize(ISpreadsheetView window, Spreadsheet sheet, string title) { view = window; if (sheet == null) { sheet = new Spreadsheet(); } else { this.sheet = sheet; } view.FileChosenEvent += HandleFileChosen; view.NewEvent += HandleNew; view.SelectEvent += HandleSelectionChanged; view.EnterCellContentEvent += HandleEditBoxText; view.FileSaveEvent += HandleSaveFile; view.UnsavedCloseEvent += HandleUnSavedClose; view.FileCloseEvent += HandleClose; view.Title = title; }
/// <summary> /// Open a file and fill the speadsheet window with the file information /// </summary> /// <param name="window"></param> /// <param name="sheet"></param> /// <param name="title"></param> public Controller(ISpreadsheetView window, Spreadsheet sheet, string title) { Inititalize(window, sheet, title); int[] temp; // Fill all nonempty cell with value in the source file foreach (string cell in sheet.GetNamesOfAllNonemptyCells()) { GetCellNumber(cell, out int col, out int row); temp = new int[2] { col, row }; view.SelectedCellAddress = temp; view.SetCellValueOnPanel(temp, sheet.GetCellValue(cell).ToString()); } HandleSelectionChanged(new int[2] { 0, 0 }); }
/// <summary> /// Begins controlling the active window. Valid cell names are /// in the range [A1-Z99]. /// </summary> public Controller(ISpreadsheetView window) { // Initialize instance variables. this.window = window; this.spreadsheet = new Spreadsheet(new Regex(@"^[a-zA-Z]{1}[1-9]{1}\d?$")); closedFromMenu = false; saveCancelled = false; // Setup the window window.Title = "Unsaved Spreadsheet"; UpdateSpreadsheetWindow("A1"); // Register the event handlers window.FileChosenEvent += HandleFileChosen; window.CloseEvent += HandleClose; window.NewEvent += HandleNew; window.HowToEvent += HandleHowTo; window.KeyPressed += HandleKeyPress; window.EvaluateClicked += HandleEvaluate; window.SaveAsEvent += HandleSaveAs; window.SaveEvent += HandleSave; window.ClosingForm += HandleXClose; window.SelectionChanged += HandleSelection; }
/// <summary> /// Begins controlling the supplied window. /// </summary> public Controller(ISpreadsheetView viewWindow) { window = viewWindow; InitializeWindow(); spreadsheet = new Spreadsheet(new Regex("^[a-z|A-Z][1-9][0-9]{0,1}$")); }
/// <summary> /// Begins controlling window without supplying a sheet reference for a new window /// </summary> public Controller(ISpreadsheetView window, string title) { Inititalize(window, null, title); }
/// <summary> /// Begins controlling the supplied window. /// </summary> public Controller(ISpreadsheetView viewWindow) { window = viewWindow; spreadsheet = new Spreadsheet(new Regex("^[a-z|A-Z][1-9][0-9]$")); selectedCell = "A1"; }