Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Unified Diff: experimental/conways_life/controllers/viewcontroller.js

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/conways_life/controllers/viewcontroller.js
diff --git a/experimental/conways_life/controllers/viewcontroller.js b/experimental/conways_life/controllers/viewcontroller.js
deleted file mode 100644
index 3006c7797a6e92b2ac8493549893e781e3b86709..0000000000000000000000000000000000000000
--- a/experimental/conways_life/controllers/viewcontroller.js
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright 2011 (c) The Native Client Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/**
- * @fileoverview Implement the view controller class, ViewController, that
- * owns the Life NaCl module and wraps JavaScript bridge calls to it. This
- * class also handles certain UI interactions, such as mouse drags and keyboard
- * shortcuts.
- */
-
-goog.provide('life.controllers.ViewController');
-
-goog.require('goog.Disposable');
-goog.require('goog.dom');
-goog.require('goog.events.EventTarget');
-goog.require('goog.fx.DragEvent');
-goog.require('goog.object');
-goog.require('goog.style');
-goog.require('uikit.events.Dragger');
-
-/**
- * Constructor for the ViewController class. This class encapsulates the
- * Life NaCl module in a view. It also produces some UI events, such as mouse
- * drags.
- * @param {!Object} nativeModule The DOM element that represents a
- * ViewController (usually the <EMBED> element that contains the NaCl
- * module). If undefined, an error is thrown.
- * @constructor
- * @extends {goog.events.EventTarget}
- */
-life.controllers.ViewController = function(nativeModule) {
- goog.events.EventTarget.call(this);
- /**
- * The element containing the Life NaCl module that corresponds to
- * this object instance. If null or undefined, an exception is thrown.
- * @type {Element}
- * @private
- */
- if (!nativeModule) {
- throw new Error('ViewController() requires a valid NaCl module');
- }
- // The container is the containing DOM element.
- this.module_ = nativeModule;
-
- /**
- * The play mode. Accessed via playMode(), mutated via setPlayMode().
- * Note that changing the play mode can cause the simulation to restart.
- * @type {enum}
- * @private
- */
- this.playMode_ = life.controllers.ViewController.PlayModes_.RANDOM_SEED;
-
- /**
- * Indicate whether the simulation is running.
- * @type {bool}
- * @private
- */
- this.isRunning_ = false;
-
- /**
- * The map of stamps. Initialized to a default stamp that produces a glider
- * when using the "normal" Conway rules of 23/3.
- * @type {Hash}
- * @private
- */
- this.stampDictionary_ = {};
- this.addStampWithId('***\n*..\n.*.\n', this.DEFAULT_STAMP_ID);
-
- /**
- * Mouse drag event object.
- * @type {life.events.Dragger}
- * @private
- */
- this.dragListener_ = new uikit.events.Dragger(nativeModule);
- // Hook up a Dragger and listen to the drag events coming from it, then
- // reprocess the events as Life DRAG events.
- goog.events.listen(this.dragListener_, goog.fx.Dragger.EventType.START,
- this.handleStartDrag_, false, this);
- goog.events.listen(this.dragListener_, goog.fx.Dragger.EventType.END,
- this.handleEndDrag_, false, this);
- goog.events.listen(this.dragListener_, goog.fx.Dragger.EventType.DRAG,
- this.handleDrag_, false, this);
-};
-goog.inherits(life.controllers.ViewController, goog.events.EventTarget);
-
-/**
- * Values for the play mode. These come from the |PLAY_MODE_SELECT| element.
- * @enum {string}
- * @private
- */
-life.controllers.ViewController.PlayModes_ = {
- RANDOM_SEED: 'random_seed',
- STAMP: 'stamp'
-};
-
-/**
- * The id for the default stamp.
- * @type {string}
- */
-life.controllers.ViewController.prototype.DEFAULT_STAMP_ID = 'default_stamp';
-
-/**
- * Override of disposeInternal() to unhook all the listeners and dispose
- * of retained objects.
- * @override
- */
-life.controllers.ViewController.prototype.disposeInternal = function() {
- life.controllers.ViewController.superClass_.disposeInternal.call(this);
- goog.events.unlisten(this.dragListener_, goog.fx.Dragger.EventType.START,
- this.handleStartDrag_, false, this);
- goog.events.unlisten(this.dragListener_, goog.fx.Dragger.EventType.DRAG,
- this.handleDrag_, false, this);
- goog.events.unlisten(this.dragListener_, goog.fx.Dragger.EventType.END,
- this.handleEndDrag_, false, this);
- this.dragListener_ = null;
- this.module_ = null;
- this.stampDictionary_ = null;
-};
-
-/**
- * Simple wrapper that forwards the "clear" method to the NaCl module.
- */
-life.controllers.ViewController.prototype.clear = function() {
- this.invokeMethod_('clear');
-}
-
-/**
- * Return the current play mode.
- * @return {enum} The current play mode.
- */
-life.controllers.ViewController.prototype.playMode = function() {
- return this.playMode_;
-}
-
-/**
- * Set the play mode to one of RANDOM_SEED or STAMP. Changing the play mode
- * can cause the simulation to restart in the new play mode. Do nothing if the
- * play mode is set to the current mode.
- * @param {string} playMode The new play mode.
- */
-life.controllers.ViewController.prototype.setPlayMode = function(playMode) {
- if (playMode == this.playMode_)
- return;
- this.playMode_ = playMode;
- if (this.isRunning_) {
- this.invokeMethod_('runSimulation', { mode: this.playMode_ });
- }
-}
-
-/**
- * Set the automaton rules. The rules are expressed as an object that maps
- * birth and keep-alive rules to neighbour counts.
- * @param {Object.<Array>} automatonRules The new rule string.
- */
-life.controllers.ViewController.prototype.setAutomatonRules =
- function(automatonRules) {
- var ruleString = [automatonRules.keepAliveRule.join(''),
- automatonRules.birthRule.join('')].join('/');
- this.invokeMethod_('setAutomatonRules', { rules: ruleString });
-}
-
-/**
- * Add a stamp to the simulation. The stamp is expressed as a string where
- * each character represents a cell: '*' is a live cell and '.' is a dead one.
- * A new-line represents the end of arow of cells. See the .LIF 1.05 format
- * for more details:
- * http://psoup.math.wisc.edu/mcell/ca_files_formats.html
- * If a stamp with |stampId| already exists, then it gets replaced with the
- * new |stampDefinition|.
- * @param {!string} stampDescription The new stamp description.
- * @param {!string} stampId The id associated with this stamp.
- */
-life.controllers.ViewController.prototype.addStampWithId =
- function(stampDescription, stampId) {
- this.stampDictionary_[stampId] = stampDescription;
-}
-
-/**
- * Set the current stamp. If a stamp with id |stampId| doesn't exist, then
- * do nothing.
- * @param {!string} stampDescription The new stamp description.
- * @param {!string} stampId The id associated with this stamp.
- * @return {bool} Success.
- */
-life.controllers.ViewController.prototype.selectStamp = function(stampId) {
- if (stampId in this.stampDictionary_) {
- this.invokeMethod_('setCurrentStamp',
- { description: this.stampDictionary_[stampId] });
- return true;
- }
- return false;
-}
-
-/**
- * Return the encoded string for stamp with id |stampId|. If no such stamp
- * exists, return null.
- * @return {?string} The current stamp string.
- */
-life.controllers.ViewController.prototype.stampWithId = function(stampId) {
- if (stampId in this.stampDictionary_)
- return this.stampDictionary_[stampId];
- return null;
-}
-
-/**
- * Start the simulation. Does nothing if it's already running.
- */
-life.controllers.ViewController.prototype.run = function() {
- this.isRunning_ = true;
- this.invokeMethod_('runSimulation', { mode: this.playMode_ });
-}
-
-/**
- * Stop the simulation. Does nothing if it's already stopped.
- */
-life.controllers.ViewController.prototype.stop = function() {
- this.isRunning_ = false;
- this.invokeMethod_('stopSimulation');
-}
-
-
-/**
- * Set the stamp sound to the file pointed at by |stampSoundUrl|. For now,
- * only .wav files are supported. If there is a currentstamp sound in effect,
- * it will be replaced with this one.
- * @param {!string} stampSoundUrl The Url that points to a .wav file containing
- * the stamp sound.
- */
-life.controllers.ViewController.prototype.setStampSoundUrl =
- function(stampSoundUrl) {
- if (stampSoundUrl.length > 0) {
- this.invokeMethod_('setStampSoundUrl', { soundUrl: stampSoundUrl });
- }
-}
-
-/**
- * Convert the coordinate system of |point| to the root window's coordinate
- * system.
- * @param {!goog.math.Coordinate} point The point in the coordinate system
- * of this view.
- * @return {goog.math.Coordinate} The converted point.
- */
-life.controllers.ViewController.prototype.convertPointToWindow =
- function(point) {
- var offset = goog.style.getFramedPageOffset(this.module_, window);
- return goog.math.Coordinate.difference(point, offset);
-}
-
-/**
- * Format a method invocation and call postMessage with the formatted method
- * string. This calls the NaCl module with the invocation string. Note that
- * this is an asynchronous call into the NaCl module.
- * @param {!string} methodName The name of the method. This must match a
- * published method name in the NaCl module.
- * @param {?Object} parameters A dictionary that maps parameter names to
- * values. All parameter values are passed a strings.
- */
-life.controllers.ViewController.prototype.invokeMethod_ =
- function(methodName, opt_parameters) {
- var method_invocation = methodName
- if (opt_parameters) {
- for (param in opt_parameters) {
- method_invocation += ' ' + param + ':' + opt_parameters[param]
- }
- }
- this.module_.postMessage(method_invocation);
-}
-
-/**
- * Handle the drag START event: add a cell at the event's coordinates.
- * @param {!goog.fx.DragEvent} dragStartEvent The START event that
- * triggered this handler.
- * @private
- */
-life.controllers.ViewController.prototype.handleStartDrag_ =
- function(dragStartEvent) {
- dragStartEvent.stopPropagation();
- var point = this.convertPointToWindow(
- new goog.math.Coordinate(dragStartEvent.clientX,
- dragStartEvent.clientY));
- this.invokeMethod_('putStampAtPoint', { x: point.x, y: point.y });
-};
-
-/**
- * Handle the DRAG event: add a cell at the event's coordinates. If the
- * event goes outside of the drawing area, clip it.
- * @param {!goog.fx.DragEvent} dragEvent The DRAG event that triggered this
- * handler.
- * @private
- */
-life.controllers.ViewController.prototype.handleDrag_ = function(dragEvent) {
- dragEvent.stopPropagation();
- var point = this.convertPointToWindow(
- new goog.math.Coordinate(dragEvent.clientX, dragEvent.clientY));
- this.invokeMethod_('putStampAtPoint', { x: point.x, y: point.y });
-};
-
-/**
- * Handle the drag END event: stop propagating the event.
- * @param {!goog.fx.DragEvent} dragEndEvent The END event that triggered this
- * handler.
- * @private
- */
-life.controllers.ViewController.prototype.handleEndDrag_ =
- function(dragEndEvent) {
- dragEndEvent.stopPropagation();
-};
« no previous file with comments | « experimental/conways_life/controllers/stamp_panel.js ('k') | experimental/conways_life/controllers/viewcontroller_test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698