Re: [Flashcoders] MVC style Correction

2012-02-24 Thread Ross Sclafani
Yeah I understand how different the flavors are now. I didnt invent the 
triangular flow paradigm of my framework, I read it in a book.

Lots of books, lots of 'spirits' 

In the end it's just another 3 letter acronym.

Ross P. Sclafani
Owner / Creative Director
Neuromantic Industries
http://www.neuromantic.com
http://ross.sclafani.net
http://www.twitter.com/rosssclafani
347.204.5714

On Feb 24, 2012, at 4:45 PM, "Merrill, Jason"  
wrote:

> No rules, you're right, just having the controller manipulate data just seems 
> to go against the "spirit" of what MVC is all about. Controllers are usually 
> used as communication busses in my experience. 
> 
> Jason Merrill
> Instructional Technology Architect II
> Bank of America  Global Learning 
> 
> 
> 
> 
> 
> ___
> 
> 
> -Original Message-
> From: flashcoders-boun...@chattyfig.figleaf.com 
> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Ross Sclafani
> Sent: Friday, February 24, 2012 4:29 PM
> To: Flash Coders List
> Subject: Re: [Flashcoders] MVC style Correction
> 
> Apparently there are no rules.
> 
> Just call it MVC and it's MVC I guess.
> 
> 
> 
> Ross P. Sclafani
> Owner / Creative Director
> Neuromantic Industries
> http://www.neuromantic.com
> http://ross.sclafani.net
> http://www.twitter.com/rosssclafani
> 347.204.5714
> 
> On Feb 24, 2012, at 10:15 AM, "Merrill, Jason" 
>  wrote:
> 
>> Maybe I'm off, but I don't think the controller should manipulate data. 
>> 
>> Jason Merrill
>> Instructional Technology Architect II
>> Bank of America  Global Learning
>> 
>> 
>> 
>> 
>> 
>> ___
>> 
>> -Original Message-
>> From: flashcoders-boun...@chattyfig.figleaf.com 
>> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of 
>> Mattheis, Erik (MIN-WSW)
>> Sent: Thursday, February 23, 2012 8:26 PM
>> To: Flash Coders List
>> Subject: Re: [Flashcoders] MVC style Correction
>> 
>> "Ross Sclafani"  wrote:
>> It is very easy to locate any code in one of my projects by ascertaining the 
>> domain of the code in question and looking in the appropriate branch.
>> Does it store data? It's in the model. Does it interpret and display data? 
>> Try your views. Does it manipulate data? Look in the controller.
>> 
>> This thread has been useful, thanks all. I've a ton of questions regarding 
>> judgment calls and below I post a class illustrating a few I've struggled 
>> with. The comments are intended to be my questions/admissions of bafflement. 
>> I'm unsure where in a MVC this class should go as its main purpose is to 
>> work with the File class which itself has methods which retrieve 
>> (File.applicationDirectory), interpret (File.exists) and display 
>> (File.browseForOpen) data.
>> 
>> The class also is a dreaded example of allowing the view to listen directly 
>> to the model for events, perhaps only because I've misguidedly decided to 
>> make it part of the model as it has to do with copying and deleting a SQLite 
>> file used in the app.
>> 
>> package mvc.model {
>> /* saveFileAs() saves a copy of a SQLite DB for the purposes of  
>> transferring data to an instance of this app on another  computer.
>> 
>> closeDBAndReplace() = replaces the db file if the user  is importing data.
>> */
>> import flash.events.EventDispatcher;
>> import flash.events.Event;
>> import flash.filesystem.File;
>> // class Data works with a SQLite DB
>> import mvc.model.Data;
>> // Where in a MVC should custom event classes  // be located? I wish to pass 
>> my own objects  // along with events, usually "Transfer Objects"
>> // or a string to be displayed
>> import mvc.controller.CustomDataEvent;
>> 
>> public class ManipulateDBFile extends EventDispatcher {
>> 
>> private var _data:Data;
>> private var _sourceFile:File;
>> private var _copyToDirectory:File;
>> 
>> public function ManipulateDBFile(data:Data) {
>>  _data = data;
>> }
>> 
>> public function saveFileAs() : void {
>>  var docsDir:File = File.desktopDirectory;
>>  // This creates a UI element. I would look for this code in the view!
>>  docsDir.browseForDirectory('Save File in  ...');
>>  // This is asking a UI elemt to inform the Model directly. Big bad no?
>>  docsDir.addEventListener(Event.SELECT, copyFile);  }
>> 
>> private function copyFile(e:Event):void  {
>>  _sourceFile = File.applicationStorageDirectory.resolvePath("msgDB.db");
>>  _copyToDirectory = e.target.resolvePath("msgDB.db");
>>  if (_copyToDirectory.exists) {
>>   // Passing this event through the Controller seems to create complexity,
>>   // or at least unnecessary lines of code. Is there an advantage gained by
>>   // communicating to the view through the controller here?
>>   var evt:CustomDataEvent = new 
>> CustomDataEvent(CustomDataEvent.FILE_ALREADY_EXISTS);
>>   dispatchEvent(evt);
>>  }
>>  else {
>>   replaceFile();
>>  }
>> }
>> 
>> public function replaceFile() : void {
>>  var evt:CustomDataEvent = new 
>> CustomDataEvent(CustomDataEvent.COPY_COMPLETE);
>>  

RE: [Flashcoders] MVC style Correction

2012-02-24 Thread Merrill, Jason
No rules, you're right, just having the controller manipulate data just seems 
to go against the "spirit" of what MVC is all about. Controllers are usually 
used as communication busses in my experience. 

 Jason Merrill
 Instructional Technology Architect II
 Bank of America  Global Learning 





___


-Original Message-
From: flashcoders-boun...@chattyfig.figleaf.com 
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Ross Sclafani
Sent: Friday, February 24, 2012 4:29 PM
To: Flash Coders List
Subject: Re: [Flashcoders] MVC style Correction

Apparently there are no rules.

Just call it MVC and it's MVC I guess.



Ross P. Sclafani
Owner / Creative Director
Neuromantic Industries
http://www.neuromantic.com
http://ross.sclafani.net
http://www.twitter.com/rosssclafani
347.204.5714

On Feb 24, 2012, at 10:15 AM, "Merrill, Jason" 
 wrote:

> Maybe I'm off, but I don't think the controller should manipulate data. 
> 
> Jason Merrill
> Instructional Technology Architect II
> Bank of America  Global Learning
> 
> 
> 
> 
> 
> ___
> 
> -Original Message-
> From: flashcoders-boun...@chattyfig.figleaf.com 
> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of 
> Mattheis, Erik (MIN-WSW)
> Sent: Thursday, February 23, 2012 8:26 PM
> To: Flash Coders List
> Subject: Re: [Flashcoders] MVC style Correction
> 
> "Ross Sclafani"  wrote:
> It is very easy to locate any code in one of my projects by ascertaining the 
> domain of the code in question and looking in the appropriate branch.
> Does it store data? It's in the model. Does it interpret and display data? 
> Try your views. Does it manipulate data? Look in the controller.
> 
> This thread has been useful, thanks all. I've a ton of questions regarding 
> judgment calls and below I post a class illustrating a few I've struggled 
> with. The comments are intended to be my questions/admissions of bafflement. 
> I'm unsure where in a MVC this class should go as its main purpose is to work 
> with the File class which itself has methods which retrieve 
> (File.applicationDirectory), interpret (File.exists) and display 
> (File.browseForOpen) data.
> 
> The class also is a dreaded example of allowing the view to listen directly 
> to the model for events, perhaps only because I've misguidedly decided to 
> make it part of the model as it has to do with copying and deleting a SQLite 
> file used in the app.
> 
> package mvc.model {
> /* saveFileAs() saves a copy of a SQLite DB for the purposes of  transferring 
> data to an instance of this app on another  computer.
> 
> closeDBAndReplace() = replaces the db file if the user  is importing data.
> */
> import flash.events.EventDispatcher;
> import flash.events.Event;
> import flash.filesystem.File;
> // class Data works with a SQLite DB
> import mvc.model.Data;
> // Where in a MVC should custom event classes  // be located? I wish to pass 
> my own objects  // along with events, usually "Transfer Objects"
> // or a string to be displayed
> import mvc.controller.CustomDataEvent;
> 
> public class ManipulateDBFile extends EventDispatcher {
> 
>  private var _data:Data;
>  private var _sourceFile:File;
>  private var _copyToDirectory:File;
> 
>  public function ManipulateDBFile(data:Data) {
>   _data = data;
>  }
> 
>  public function saveFileAs() : void {
>   var docsDir:File = File.desktopDirectory;
>   // This creates a UI element. I would look for this code in the view!
>   docsDir.browseForDirectory('Save File in  ...');
>   // This is asking a UI elemt to inform the Model directly. Big bad no?
>   docsDir.addEventListener(Event.SELECT, copyFile);  }
> 
>  private function copyFile(e:Event):void  {
>   _sourceFile = File.applicationStorageDirectory.resolvePath("msgDB.db");
>   _copyToDirectory = e.target.resolvePath("msgDB.db");
>   if (_copyToDirectory.exists) {
>// Passing this event through the Controller seems to create complexity,
>// or at least unnecessary lines of code. Is there an advantage gained by
>// communicating to the view through the controller here?
>var evt:CustomDataEvent = new 
> CustomDataEvent(CustomDataEvent.FILE_ALREADY_EXISTS);
>dispatchEvent(evt);
>   }
>   else {
>replaceFile();
>   }
>  }
> 
>  public function replaceFile() : void {
>   var evt:CustomDataEvent = new 
> CustomDataEvent(CustomDataEvent.COPY_COMPLETE);
>   try {
>_sourceFile.copyTo(_copyToDirectory, true);
>dispatchEvent(evt);
>   }
> 
>   catch (error:Error) {
>evt.param = error.message;
>dispatchEvent(evt);
>   }
>   _sourceFile = null;
>   _copyToDirectory = null;
>  }
> 
>  public function closeDBAndReplace() : void {
>   // The file cannot be deleted if there is a SQLConnection to it.
>   // The class that is aware of a possible connection also does the
>   // deletion. But deleting the file seems to conceptually
>   // fit into this class better
>   _data.addEventListener(CustomDataEvent.DRILL_RESET, findF

Re: [Flashcoders] MVC style Correction

2012-02-24 Thread Ross Sclafani
Apparently there are no rules.

Just call it MVC and it's MVC I guess.



Ross P. Sclafani
Owner / Creative Director
Neuromantic Industries
http://www.neuromantic.com
http://ross.sclafani.net
http://www.twitter.com/rosssclafani
347.204.5714

On Feb 24, 2012, at 10:15 AM, "Merrill, Jason" 
 wrote:

> Maybe I'm off, but I don't think the controller should manipulate data. 
> 
> Jason Merrill
> Instructional Technology Architect II
> Bank of America  Global Learning 
> 
> 
> 
> 
> 
> ___
> 
> -Original Message-
> From: flashcoders-boun...@chattyfig.figleaf.com 
> [mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Mattheis, 
> Erik (MIN-WSW)
> Sent: Thursday, February 23, 2012 8:26 PM
> To: Flash Coders List
> Subject: Re: [Flashcoders] MVC style Correction
> 
> "Ross Sclafani"  wrote:
> It is very easy to locate any code in one of my projects by ascertaining the 
> domain of the code in question and looking in the appropriate branch.
> Does it store data? It's in the model. Does it interpret and display data? 
> Try your views. Does it manipulate data? Look in the controller.
> 
> This thread has been useful, thanks all. I've a ton of questions regarding 
> judgment calls and below I post a class illustrating a few I've struggled 
> with. The comments are intended to be my questions/admissions of bafflement. 
> I'm unsure where in a MVC this class should go as its main purpose is to work 
> with the File class which itself has methods which retrieve 
> (File.applicationDirectory), interpret (File.exists) and display 
> (File.browseForOpen) data.
> 
> The class also is a dreaded example of allowing the view to listen directly 
> to the model for events, perhaps only because I've misguidedly decided to 
> make it part of the model as it has to do with copying and deleting a SQLite 
> file used in the app.
> 
> package mvc.model {
> /* saveFileAs() saves a copy of a SQLite DB for the purposes of  transferring 
> data to an instance of this app on another  computer.
> 
> closeDBAndReplace() = replaces the db file if the user  is importing data.
> */
> import flash.events.EventDispatcher;
> import flash.events.Event;
> import flash.filesystem.File;
> // class Data works with a SQLite DB
> import mvc.model.Data;
> // Where in a MVC should custom event classes  // be located? I wish to pass 
> my own objects  // along with events, usually "Transfer Objects"
> // or a string to be displayed
> import mvc.controller.CustomDataEvent;
> 
> public class ManipulateDBFile extends EventDispatcher {
> 
>  private var _data:Data;
>  private var _sourceFile:File;
>  private var _copyToDirectory:File;
> 
>  public function ManipulateDBFile(data:Data) {
>   _data = data;
>  }
> 
>  public function saveFileAs() : void {
>   var docsDir:File = File.desktopDirectory;
>   // This creates a UI element. I would look for this code in the view!
>   docsDir.browseForDirectory('Save File in  ...');
>   // This is asking a UI elemt to inform the Model directly. Big bad no?
>   docsDir.addEventListener(Event.SELECT, copyFile);
>  }
> 
>  private function copyFile(e:Event):void  {
>   _sourceFile = File.applicationStorageDirectory.resolvePath("msgDB.db");
>   _copyToDirectory = e.target.resolvePath("msgDB.db");
>   if (_copyToDirectory.exists) {
>// Passing this event through the Controller seems to create complexity,
>// or at least unnecessary lines of code. Is there an advantage gained by
>// communicating to the view through the controller here?
>var evt:CustomDataEvent = new 
> CustomDataEvent(CustomDataEvent.FILE_ALREADY_EXISTS);
>dispatchEvent(evt);
>   }
>   else {
>replaceFile();
>   }
>  }
> 
>  public function replaceFile() : void {
>   var evt:CustomDataEvent = new 
> CustomDataEvent(CustomDataEvent.COPY_COMPLETE);
>   try {
>_sourceFile.copyTo(_copyToDirectory, true);
>dispatchEvent(evt);
>   }
> 
>   catch (error:Error) {
>evt.param = error.message;
>dispatchEvent(evt);
>   }
>   _sourceFile = null;
>   _copyToDirectory = null;
>  }
> 
>  public function closeDBAndReplace() : void {
>   // The file cannot be deleted if there is a SQLConnection to it.
>   // The class that is aware of a possible connection also does the
>   // deletion. But deleting the file seems to conceptually
>   // fit into this class better
>   _data.addEventListener(CustomDataEvent.DRILL_RESET, findFile, false, 0, 
> true);
>   _data.deleteDBFile();
> 
>  }
> 
>  private function findFile(e:CustomDataEvent) : void {
>   _data.removeEventListener(CustomDataEvent.DRILL_RESET, findFile, false);
>   var docsDir:File = File.desktopDirectory;
>   docsDir.browseForOpen('Select msgDB.db file ...');
>   docsDir.addEventListener(Event.SELECT, replaceDBFile);
>  }
> 
>  private function replaceDBFile(e:Event):void  {
>   var sourceFile:File = e.target as File;
>   var destination:File = 
> File.applicationStorageDirectory.resolvePath("msgDB.db");
>   try {
>sourceFile.copyTo(destinat

Re: [Flashcoders] Flash Platform roadmap released - time to start learning HTML 5 unless you make games.

2012-02-24 Thread John R. Sweeney Jr.
It so reminds of the days of Director and Behaviors. There was SO much 
extra bull coded into them, it was always better to roll your own. :) 

As if Lingo was verbose enough… :)

Have a good day,
John

John R. Sweeney Jr.
Senior Interactive Multimedia Developer
OnDemand Interactive Inc
Hoffman Estates, IL 60169




On Feb 24, 2012, at 1:42 PM, Kevin Newman wrote:

> Personally, I'll be happen when I don't have to edit HTML by hand anymore. 
> That day came for PostScript a generation ago, and with some luck and hard 
> work, it'll come for HTML.
> 
> Kevin N.


___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


Re: [Flashcoders] Flash Platform roadmap released - time to start learning HTML 5 unless you make games.

2012-02-24 Thread Kevin Newman

I only played with Edge briefly on vacation last summer. :)

I think that fear about HTML is warranted in terms of the quality of 
code you'll end up with - but the same can be said for hand written 
PostScript vs. Illustrator generated PostScript.


Personally, I'll be happen when I don't have to edit HTML by hand 
anymore. That day came for PostScript a generation ago, and with some 
luck and hard work, it'll come for HTML.


Kevin N.


On 2/24/12 10:29 AM, James Merrill wrote:

Have you guys given Adobe edge a try? It's like Flash MX, without easily
accessible fonts or drawing tools...

My fear is that handwriting HTML will always be cleaner and more structured
than using an IDE. Imagine building a robust web application with tons of
animation in Edge... It just seems impossible, where as Flash made it easy.


___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


Re: [Flashcoders] Flash Platform roadmap released - time to start learning HTML 5 unless you make games.

2012-02-24 Thread James Merrill
Have you guys given Adobe edge a try? It's like Flash MX, without easily
accessible fonts or drawing tools...

My fear is that handwriting HTML will always be cleaner and more structured
than using an IDE. Imagine building a robust web application with tons of
animation in Edge... It just seems impossible, where as Flash made it easy.



On Thu, Feb 23, 2012 at 3:57 PM, Karl DeSaulniers wrote:

> +1
>
>
> On Feb 23, 2012, at 10:49 AM, Kevin Newman wrote:
>
>  There is this idea that was articulated by an old timer - an ex-bank CEO
>> - on Bill Moyer's show a few weeks ago, that companies and running
>> companies used to be about product and solving customers' problems - great
>> loan products if you are are a banker, or Flash and great tools if you run
>> Adobe. But these days business culture has changed to be primarily about
>> profit, to the point where you actually get Kudos for gloating about how
>> much money you were able to stock pile this quarter, instead of what great
>> products you created, or how many customers you satisfied.
>>
>> This is a sad state of affairs that affects more than just Adobe, though
>> they seem to have slipped into that black hole of profit gloating just like
>> so many other American corporations. And the CEOs probably get real social
>> kudos for that money gloating at their cocktail parties.
>>
>> Personally, I'll stay focused on products and customers, and hope that's
>> enough to help change the culture back. I'm pretty much at the bottom of
>> the totem pole though. I can only hope these old ideas will see some kind
>> of revival at that corporate board and CEO level of American culture.
>>
>> Kevin N.
>>
>
> Karl DeSaulniers
> Design Drumm
> http://designdrumm.com
>
> __**_
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.**com 
> http://chattyfig.figleaf.com/**mailman/listinfo/flashcoders
>



-- 
James Merrill
___
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


RE: [Flashcoders] MVC style Correction

2012-02-24 Thread Merrill, Jason
Maybe I'm off, but I don't think the controller should manipulate data. 

 Jason Merrill
 Instructional Technology Architect II
 Bank of America  Global Learning 





___

-Original Message-
From: flashcoders-boun...@chattyfig.figleaf.com 
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Mattheis, Erik 
(MIN-WSW)
Sent: Thursday, February 23, 2012 8:26 PM
To: Flash Coders List
Subject: Re: [Flashcoders] MVC style Correction

"Ross Sclafani"  wrote:
It is very easy to locate any code in one of my projects by ascertaining the 
domain of the code in question and looking in the appropriate branch.
Does it store data? It's in the model. Does it interpret and display data? Try 
your views. Does it manipulate data? Look in the controller.

This thread has been useful, thanks all. I've a ton of questions regarding 
judgment calls and below I post a class illustrating a few I've struggled with. 
The comments are intended to be my questions/admissions of bafflement. I'm 
unsure where in a MVC this class should go as its main purpose is to work with 
the File class which itself has methods which retrieve 
(File.applicationDirectory), interpret (File.exists) and display 
(File.browseForOpen) data.

The class also is a dreaded example of allowing the view to listen directly to 
the model for events, perhaps only because I've misguidedly decided to make it 
part of the model as it has to do with copying and deleting a SQLite file used 
in the app.

package mvc.model {
 /* saveFileAs() saves a copy of a SQLite DB for the purposes of  transferring 
data to an instance of this app on another  computer.

closeDBAndReplace() = replaces the db file if the user  is importing data.
 */
 import flash.events.EventDispatcher;
 import flash.events.Event;
 import flash.filesystem.File;
 // class Data works with a SQLite DB
 import mvc.model.Data;
 // Where in a MVC should custom event classes  // be located? I wish to pass 
my own objects  // along with events, usually "Transfer Objects"
 // or a string to be displayed
 import mvc.controller.CustomDataEvent;

 public class ManipulateDBFile extends EventDispatcher {

  private var _data:Data;
  private var _sourceFile:File;
  private var _copyToDirectory:File;

  public function ManipulateDBFile(data:Data) {
   _data = data;
  }

  public function saveFileAs() : void {
   var docsDir:File = File.desktopDirectory;
   // This creates a UI element. I would look for this code in the view!
   docsDir.browseForDirectory('Save File in  ...');
   // This is asking a UI elemt to inform the Model directly. Big bad no?
   docsDir.addEventListener(Event.SELECT, copyFile);
  }

  private function copyFile(e:Event):void  {
   _sourceFile = File.applicationStorageDirectory.resolvePath("msgDB.db");
   _copyToDirectory = e.target.resolvePath("msgDB.db");
   if (_copyToDirectory.exists) {
// Passing this event through the Controller seems to create complexity,
// or at least unnecessary lines of code. Is there an advantage gained by
// communicating to the view through the controller here?
var evt:CustomDataEvent = new 
CustomDataEvent(CustomDataEvent.FILE_ALREADY_EXISTS);
dispatchEvent(evt);
   }
   else {
replaceFile();
   }
  }

  public function replaceFile() : void {
   var evt:CustomDataEvent = new CustomDataEvent(CustomDataEvent.COPY_COMPLETE);
   try {
_sourceFile.copyTo(_copyToDirectory, true);
dispatchEvent(evt);
   }

   catch (error:Error) {
evt.param = error.message;
dispatchEvent(evt);
   }
   _sourceFile = null;
   _copyToDirectory = null;
  }

  public function closeDBAndReplace() : void {
   // The file cannot be deleted if there is a SQLConnection to it.
   // The class that is aware of a possible connection also does the
   // deletion. But deleting the file seems to conceptually
   // fit into this class better
   _data.addEventListener(CustomDataEvent.DRILL_RESET, findFile, false, 0, 
true);
   _data.deleteDBFile();

  }

  private function findFile(e:CustomDataEvent) : void {
   _data.removeEventListener(CustomDataEvent.DRILL_RESET, findFile, false);
   var docsDir:File = File.desktopDirectory;
   docsDir.browseForOpen('Select msgDB.db file ...');
   docsDir.addEventListener(Event.SELECT, replaceDBFile);
  }

  private function replaceDBFile(e:Event):void  {
   var sourceFile:File = e.target as File;
   var destination:File = 
File.applicationStorageDirectory.resolvePath("msgDB.db");
   try {
sourceFile.copyTo(destination, true);
dispatchEvent(new CustomDataEvent(CustomDataEvent.RESTART_REQUIRED));
   }
   catch (error:Error) {
trace("Error:", error.message);
   }
  }
 }
}

On 2/17/12 6:07 PM, "Ross Sclafani"  wrote:
It is very easy to locate any code in one of my projects by ascertaining the 
domain of the code in question and looking in the appropriate branch.
Does it store data? It's in the model.
Does it interpret and display data? Try your views.
Does it manipulate data? Look in th