* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Java Direct Manipulation
Survey
Document related concepts
Transcript
User Interface Programming in C#: Model-View-Controller Chris North CS 3724: HCI GUI Topics Components GUI layouts Events Graphics Manipulation Animation Databases MVC Review: Direct Manipulation • DM Definition? (Shneiderman) • • • • • DM processing steps? • 1. • 2. 2 Challenges! • User interface design • Software architecture design Software Architecture so far… Program State -data structures Paint event -display data Interaction events -modify data Model-View-Controller (MVC) Model Program State -data structures View Paint event -display data Controller Interaction events -modify data Model-View-Controller (MVC) UI: refresh View Data display Controller events refresh Data: User input manipulate Model Data model Advantages? • Advantages? • Multiple views for a model • • • • • • • • Multi-view applications (overview+detail, brushing,…) Different users Different UI platforms (mobile, client-side, server-side,…) Alternate designs Multiple models Software re-use of parts Plug-n-play Maintenance Multiple Views View Controller View Controller Model Typical real-world approach View Controller Data display Data manipulation logic Model Data model E.g. C# TreeView Control TreeView control View Controller treeView1.Nodes Java: model listeners Nodes collection Model C# DataBase Controls DataGrid control -scroll, sort, edit, … View Controller DataSet class -tables -columns -rows Model C# DataBase Access (ADO.net) • • OleDB, ODBC, SQLdb, … Steps to get data: 1. 2. 3. 4. • Steps to display data: • • • dbConnection: connect to DB dbCommand: SQL query text dbAdapter: executes query DataSet: resulting data Bind to UI control, DataGrid or Manual data processing Built-in XML support too DB Alternative: DataReader, retrieve data incrementally DB Example • Get data: Using System.Data.OleDb; // “Jet” = MS Access DB driver con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/mydb.mdb”); cmd = new OleDbCommand("SELECT * FROM mytable”, con); // SQL query adpt = new OleDbDataAdapter(cmd); data = new DataSet( ); adpt.Fill(data); // execute the query and put result in ‘data’ • Display data: dataGrid1.DataSource = data.Tables[0]; // show the table in the grid control MessageBox.Show(data.Tables[0].Rows[0][5].ToString( )); // or process manually, this is row 0 col 5 GUI Topics Components GUI layouts Events Graphics Manipulation Animation Databases MVC