Exemple #1
0
        public static Html Table <Data>(this Html html, ObservableArray <Header <Data> > metadata, ObservableArray <Data> rowData)
        {
            var table = new Table <Data>(metadata, rowData);

            table.Render();
            return(html);
        }
        public Person(string name, string[] children)
        {
            Name = Knockout.Observable(name);
            Children = Knockout.ObservableArray(children);

            var self = this;
            AddChild = () => self.Children.Push("New Child");
        }
 public ControlTypesViewModel()
 {
     StringValue = Knockout.Observable("Hello");
     PasswordValue = Knockout.Observable("mypass");
     BooleanValue = Knockout.Observable(true);
     OptionValues = Knockout.ObservableArray(new[] { "Alpha", "Beta", "Gamma" });
     SelectedOptionValue = Knockout.Observable("Gamma");
     MultipleSelectedOptionValues = Knockout.ObservableArray(new[] { "Alpha" });
     RadioSelectedOptionValue = Knockout.Observable("Beta");
 }
 /// <summary>
 ///  Constructs the observable sprite selection and sets the group part Ids to nothing.
 /// </summary>
 public ObservableSpriteSelection()
 {
     GameId       = string.Empty;
     CharacterId  = string.Empty;
     GroupPartIds = new ObservableArray <int>(SpriteSelection.PartCount);
     for (int i = 0; i < SpriteSelection.PartCount; i++)
     {
         GroupPartIds[i] = SpriteSelection.NoPart;
     }
     GroupPartFrames = new ObservableArray <int>(SpriteSelection.PartCount);
 }
Exemple #5
0
 private GridContainerContent([NotNull] Drawable[][] drawables)
     : base(new ObservableArray <Drawable> [drawables.Length])
 {
     for (int i = 0; i < drawables.Length; i++)
     {
         if (drawables[i] != null)
         {
             var observableArray = new ObservableArray <Drawable>(drawables[i]);
             this[i] = observableArray;
         }
     }
 }
        /// <summary>
        ///  Constructs the an observable copy of the sprite selection.
        /// </summary>
        /// <param name="spriteSelection">The sprite selection to make a copy of.</param>
        public ObservableSpriteSelection(IReadOnlySpriteSelection spriteSelection)
        {
            GameId      = spriteSelection.GameId;
            CharacterId = spriteSelection.CharacterId;

            Lighting = spriteSelection.Lighting;
            Distance = spriteSelection.Distance;
            Pose     = spriteSelection.Pose;
            Blush    = spriteSelection.Blush;

            GroupPartIds    = new ObservableArray <int>(spriteSelection.GroupPartIds);
            GroupPartFrames = new ObservableArray <int>(spriteSelection.GroupPartFrames);
        }
        public void InitViewModel()
        {
            CurrentTweets = Knockout.ObservableArray<Tweet>();
             refreshTimer = -1;
             LastID = -1;

             String maxDistance = Utils.GetCookieValue("Max-Distance");
             if (!String.IsNullOrEmpty(maxDistance))
             {
            jQuery.Select("#max-distance-field").Value(maxDistance);
            Script.Literal("$('#max-distance-field').trigger('refresh')");
             }
             jQuery.Select("#max-distance-field").Change(new jQueryEventHandler(DistanceChangeHandler));
        }
        public SimpleListViewModel(string[] items)
        {
            this.Items = Knockout.ObservableArray(items);
            this.ItemToAdd = Knockout.Observable("");

            var self = this;
            this.AddItem = () => {
                if (self.ItemToAdd.Value != "") {
                    // Adds the item. Writing to the "items" observableArray
                    // causes any associated UI to update.
                    self.Items.Push(self.ItemToAdd.Value);
                    // Clears the text box, because it's bound to the
                    // "itemToAdd" observable
                    self.ItemToAdd.Value = "";
                }
            };
        }
        public PagedGridViewModel(Data[] items)
        {
            var self = this;

            Items = Knockout.ObservableArray(items);
            AddItem = () => self.Items.Push(new Data("New Item", 0, 100));
            SortByName = () => self.Items.Sort((a, b) => a.Name.CompareTo(b.Name));
            JumpToFirstPage = () => { self.GridViewModel.CurrentPageIndex.Value = 0; };
            GridViewModel = new ViewModel<Data>(new Configuration<Data> (
                pageSize: 4,
                data: self.Items,
                columns: Knockout.ObservableArray(new[] {
                    new Column<Data>("Item Name", "name"),
                    new Column<Data>("Sales Count", "sales"),
                    new Column<Data>("Price", item => "R " + item.Price.ToFixed(2))
                }
            )));
        }
Exemple #10
0
        public SudokuViewModel()
        {
            _board  = new string[81];
            _arr    = new ObservableArray(81);
            _sudoku = new Sudoku();
            _sudoku.WhenAnyValue(x => x.BoardIndex).Subscribe(x =>
            {
                int r   = x / 9;
                int c   = x % 9;
                _arr[x] = _sudoku.Board[r, c] + "";
                this.RaisePropertyChanged("Board");
                Debug.WriteLine("BoardIndex event, raising Board");
            });

            this.WhenAnyValue(x => x.Board.Index).Subscribe(x =>
            {
                int r = x / 9;
                int c = x % 9;
                int val;
                if (Int32.TryParse(_arr[x], out val))
                {
                    if (val < 1 || val > 9)
                    {
                        return;
                    }
                    _sudoku.SetBoard(r, c, val);
                    return;
                }
                _sudoku.SetBoard(r, c, 0);
            });

            SolveCommand = ReactiveCommand.CreateFromTask(() =>
            {
                return(Task.Run(() =>
                {
                    _sudoku.Solve();
                    return true;
                }));
            });
        }
 /*/// <summary>
  * /// Initializes a new instance of the MainViewModel class.
  * /// </summary>
  * public MainViewModel() {
  *      Collection = new ObservableCollection<int>();
  *      Categories = new ObservableCollection<ComboItem> {
  *              new ComboItem(0, 5),
  *      };
  *      for (int i = 0; i < 4; i++) {
  *              Categories.Add(Categories[i].Items[0]);
  *      }
  *      Action = new RelayCommand(ActionExecute);
  *      for (int i = 0; i < 4; i++) {
  *              Collection.Add(i);
  *      }
  *      Categories.CollectionChanged += Categories_CollectionChanged;
  * }
  *
  * private void Categories_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) {
  *      Console.WriteLine($"{e.Action} Start={e.NewStartingIndex} Count={e.NewItems.Count}");
  * }
  *
  * private Random random = new Random();
  *
  * public ObservableCollection<ComboItem> Categories { get; }
  * public ObservableCollection<int> Collection { get; }
  * public RelayCommand Action { get; }
  *
  * private void ActionExecute() {
  *      Collection[random.Next(Collection.Count)]++;
  * }*/
 /// <summary>
 /// Initializes a new instance of the MainViewModel class.
 /// </summary>
 public MainViewModel()
 {
     Collection = new ObservableCollection <int>();
     Categories = new ObservableArray <ComboItem>(5);
     this[0]    = new ComboItem(0, 5);
     for (int i = 0; i < 4; i++)
     {
         this[i + 1] = this[i].Items[0];
     }
     ComboItem.TotalItems = 0;
     Categories[0]        = new ComboItem(0, 5);
     for (int i = 0; i < 4; i++)
     {
         Categories[i + 1] = Categories[i].Items[0];
     }
     Action = new RelayCommand(ActionExecute);
     for (int i = 0; i < 4; i++)
     {
         Collection.Add(i);
     }
     Categories.CollectionChanged += Categories_CollectionChanged;
 }
        public BetterListViewModel()
        {
            var self = this;

            ItemToAdd = Knockout.Observable("");
            // Initial items
            AllItems = Knockout.ObservableArray(new[] { "Fries", "Eggs Benedict", "Ham", "Cheese" });
            // Initial selection
            SelectedItems = Knockout.ObservableArray(new[] { "Ham" });
            AddItem = () => {
                // Prevent blanks and duplicates
                if (self.ItemToAdd.Value != "" && (self.AllItems.IndexOf(self.ItemToAdd.Value) < 0)) {
                    self.AllItems.Push(self.ItemToAdd.Value);
                    // Clear the text box
                    self.ItemToAdd.Value = "";
                }
            };
            RemoveSelected = () => {
                self.AllItems.RemoveAll(self.SelectedItems.Value);
                // Clear selection
                self.SelectedItems.Value = new string[] { };
            };
            SortItems = () => self.AllItems.Sort();
        }
Exemple #13
0
 public TableViewModel()
 {
     Datafields = new List<ColumnModel>();
     Columns = new List<ColumnModel>();
     Datafields.Add(new ColumnModel
         {
             Name = "z",
             type = "number"
         });
     Datafields.Add(new ColumnModel
         {
             Name = "a",
             type = "number"
         });
     Datafields.Add(new ColumnModel
         {
             Name = "MD",
             type = "number"
         });
     Columns.Add(new ColumnModel
         {
             Text = "Zenith",
             Datafield = "z",
             Width = 80
         });
     Columns.Add(new ColumnModel
         {
             Text = "Azimuth",
             Datafield = "a",
             Width = 80
         });
     Columns.Add(new ColumnModel
         {
             Text = "Measured Depth",
             Datafield = "MD",
             Width = 120
         });
     Data = new ObservableArray<WellSurveyItemViewModel>();
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 0,
             A = 0,
             MD = 0,
         });
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 10,
             A = 10,
             MD = 10
         });
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 25,
             A = 20,
             MD = 30
         });
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 40,
             A = 30,
             MD = -40
         });
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 80,
             A = 110,
             MD = 70
         });
 }
Exemple #14
0
        public ObservableArray<WellSurveyItemViewModel> GetCartesianArray()
        {
            var cartesianarray = new ObservableArray<WellSurveyItemViewModel>();
            double md = 0;
            int i = 0;
            double x = 0;
            double y = 0;
            double z = 0;
            while (i < Data.Value.Length)
            {
                md = Data.Value[i]._MD - md;
                cartesianarray.Push(new WellSurveyItemViewModel
                {
                    X = md * Math.Sin( (Math.PI / 180) * Data.Value[i]._Z) * Math.Cos((Math.PI / 180) *Data.Value[i]._A),
                    Y = md * Math.Sin( (Math.PI / 180) * Data.Value[i]._Z) * Math.Sin((Math.PI / 180) * Data.Value[i]._A),
                    Z = md * Math.Cos( (Math.PI / 180) * Data.Value[i]._Z),
                });
                x += cartesianarray.Value[i].X;
                y -= cartesianarray.Value[i].Y;
                z += cartesianarray.Value[i].Z;

                cartesianarray.Value[i].X = x;
                cartesianarray.Value[i].Y = y;
                cartesianarray.Value[i].Z = z;
                md = Data.Value[i]._MD;
                i++;
            }
            return cartesianarray;
        }
Exemple #15
0
 public ObservableArray<WellSurveyItemViewModel> ConvertToCartesian(ObservableArray<WellSurveyItemViewModel> Cartesian, ObservableArray<WellSurveyItemViewModel> Spherical, int i)
 {
     Cartesian.Value[i].X = Spherical.Value[i]._MD * Math.Sin(Spherical.Value[i]._Z) * Math.Cos(Spherical.Value[i]._A);
     Cartesian.Value[i].Y = Spherical.Value[i]._MD * Math.Sin(Spherical.Value[i]._Z) * Math.Sin(Spherical.Value[i]._A);
     Cartesian.Value[i].Z = Spherical.Value[i]._MD * Math.Cos(Spherical.Value[i]._Z);
     return Cartesian;
 }
Exemple #16
0
 public TableViewModel()
 {
     Datafields = new List<ColumnModel>();
     Columns = new List<ColumnModel>();
     Datafields.Add(new ColumnModel
         {
             Name = "_Z",
             type = "number"
         });
     Datafields.Add(new ColumnModel
         {
             Name = "_A",
             type = "number"
         });
     Datafields.Add(new ColumnModel
         {
             Name = "_MD",
             type = "number"
         });
     Columns.Add(new ColumnModel
         {
             Text = "Zenith",
             Datafield = "_Z",
             Width = 80
         });
     Columns.Add(new ColumnModel
         {
             Text = "Azimuth",
             Datafield = "_A",
             Width = 80
         });
     Columns.Add(new ColumnModel
         {
             Text = "Measured Depth",
             Datafield = "_MD",
             Width = 120
         });
     Data = new ObservableArray<WellSurveyItemViewModel>();
     Data.Push(new WellSurveyItemViewModel
         {
             _Z = 0,
             _A = 0,
             _MD = 0,
         });
     Data.Push(new WellSurveyItemViewModel
         {
             _Z = 10,
             _A = 50,
             _MD = 10
         });
     Data.Push(new WellSurveyItemViewModel
         {
             _Z = 30,
             _A = 60,
             _MD = 30
         });
     Data.Push(new WellSurveyItemViewModel
         {
             _Z = 30,
             _A = 40,
             _MD = 40
         });
     Data.Push(new WellSurveyItemViewModel
         {
             _Z = 50,
             _A = 50,
             _MD = 70
         });
 }
Exemple #17
0
 /*
 private IEnumerable<WellSurveyItemViewModel> GetCoords(double startAngle)
 {
     var points = new List<WellSurveyItemViewModel>();
     var x = 0d;
     var y = 0d;
     var z = 0d;
     var measuredDepth = 0.0;
     foreach (var item in Data)
     {
         var vector;
     }
 }
  */
 public TableViewModel()
 {
     Columns = new List<ColumnModel>();
     Columns.Add(new ColumnModel
         {
             Name = "z",
             type = "number"
         });
     Columns.Add(new ColumnModel
         {
             Name = "a",
             type = "number"
         });
     Columns.Add(new ColumnModel
         {
             Name = "MD",
             type = "number"
         });
     Data = new ObservableArray<WellSurveyItemViewModel>();
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 0,
             A = 0,
             MD = 0,
         });
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 10,
             A = 10,
             MD = 10
         });
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 20,
             A = 15,
             MD = 30
         });
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 10,
             A = 30,
             MD = 60
         });
     Data.Push(new WellSurveyItemViewModel
         {
             Z = 10,
             A = 60,
             MD = 70
         });
     //Data2.Splice(0, 4);
 }
        public TwitterViewModel(List<TweetGroup> lists, string selectedList)
        {
            var self = this;

            this.SavedLists = Knockout.ObservableArray(lists);
            this.EditingList = new TweetGroup(
                name: Knockout.Observable(selectedList),
                userNames: Knockout.ObservableArray<string>()
            );
            this.UserNameToAdd = Knockout.Observable("");
            this.CurrentTweets = Knockout.ObservableArray(new object[0]);
            this.FindSavedList = name => KnockoutUtils.ArrayFirst(self.SavedLists.Value, grp => grp.Name.Value == name, self);
            this.AddUser = () => {
                if (self.UserNameToAdd.Value != null && self.UserNameToAddIsValid.Value) {
                    self.EditingList.UserNames.Push(self.UserNameToAdd.Value);
                    self.UserNameToAdd.Value = "";
                }
            };
            this.RemoveUser = userName => self.EditingList.UserNames.Remove(userName);
            this.SaveChanges = new Action(OnSaveChanges);
            this.DeleteList = () => {
                var nameToDelete = self.EditingList.Name.Value;
                var savedListsExceptOneToDelete = self.SavedLists.Value.Filter(grp => grp.Name.Value != nameToDelete);
                self.EditingList.Name.Value =
                    savedListsExceptOneToDelete.Length == 0
                        ? null
                        : savedListsExceptOneToDelete[0].Name.Value;
                self.SavedLists.Value = savedListsExceptOneToDelete;
            };
            Knockout.Computed(() => {
                // Observe viewModel.editingList.name(), so when it changes
                // (i.e., user selects a different list) we know to copy the
                // saved list into the editing list
                var savedList = self.FindSavedList(self.EditingList.Name.Value);
                if (savedList != null) {
                    var userNamesCopy = savedList.UserNames.Slice(0);
                    self.EditingList.UserNames.Value = userNamesCopy;
                } else {
                    self.EditingList.UserNames.Value = new string[0];
                }
            });
            this.HasUnsavedChanges = Knockout.Computed(() => {
                if (self.EditingList.Name.Value == null) {
                    return self.EditingList.UserNames.Value.Length > 0;
                }
                var savedData = self.FindSavedList(self.EditingList.Name.Value).UserNames;
                var editingData = self.EditingList.UserNames.Value;
                return savedData.Value.Join("|") != editingData.Join("|");
            });
            this.UserNameToAddIsValid = Knockout.Computed(() => {
                    var pattern = @"^\s*[a-zA-Z0-9_]{1,15}\s*$";
                    return self.UserNameToAdd.Value == "" ||
                           self.UserNameToAdd.Value.Match(new Regex(pattern, "g")) != null;
                });
            this.CanAddUserName = Knockout.Computed(() => {
                return self.UserNameToAddIsValid.Value && self.UserNameToAdd.Value != "";
            });
            // The active user tweets are (asynchronously) computed from editingList.userNames
            Knockout.Computed(() => {
                TwitterApi.GetTweetsForUsers<object[]>(
                    self.EditingList.UserNames.Value,
                    result => {
                        self.CurrentTweets.Value = result;
                    });
            });
        }
Exemple #19
0
 public Table(ObservableArray <Header <Data> > metadata, ObservableArray <Data> rowData)
 {
     Headers = metadata;
     RowData = rowData;
 }
 public TweetGroup(Observable <string> name, ObservableArray <string> userNames)
 {
     this.Name      = name;
     this.UserNames = userNames;
 }
Exemple #21
0
 public Configuration(ObservableArray <T> data, ObservableArray <Column <T> > columns, int pageSize)
 {
     this.PageSize = pageSize;
     this.Data     = data;
     this.Columns  = columns;
 }
Exemple #22
0
 public Configuration(ObservableArray <T> data, ObservableArray <Column <T> > columns)
 {
     this.Data    = data;
     this.Columns = columns;
 }
 public void Setup()
 {
     array = Global.ObservableArray <int>(new object[] { 1, 2, 3, 4 });
 }
Exemple #24
0
 public ObservableArray<WellSurveyItemViewModel> AddLine(ObservableArray<WellSurveyItemViewModel> array)
 {
     array.Push(new WellSurveyItemViewModel
         {
             Z = 0,
             A = 0,
             MD = 0
         });
     return array;
 }
Exemple #25
0
 public ObservableArray<WellSurveyItemViewModel> GetCartesianArray()
 {
     var Data2 = new ObservableArray<WellSurveyItemViewModel>();
     double md = 0.0;
     int i = 0;
     double x = 0;
     double y = 0;
     double z = 0;
     while (i < Data.Value.Length)
     {
         Data2.Push(new WellSurveyItemViewModel
         {
             Z = md + Data.Value[i].MD * Math.Sin(Data.Value[i].Z) * Math.Cos(Data.Value[i].A),
             A = md + Data.Value[i].MD * Math.Sin(Data.Value[i].Z) * Math.Sin(Data.Value[i].A),
             MD = md + Data.Value[i].MD * Math.Cos(Data.Value[i].Z),
         });
         md += Data.Value[i].MD;
         i++;
     }
     i = 0;
     while (i < Data2.Value.Length)
     {
         x += Data2.Value[i].Z;
         y += Data2.Value[i].A;
         z += Data2.Value[i].MD;
         Data2.Value[i].Z = x;
         Data2.Value[i].A = y;
         Data2.Value[i].MD = z;
         i++;
     }
     return Data2;
 }
        public NetworkViewModel(Guid id, string logicalName, GraphOptions config)
        {
            UsersAndTeams = Knockout.ObservableArray<UserOrTeam>();
            HighlightedEntities = Knockout.ObservableArray<EntityReference>();
            SelectedUserId = Knockout.Observable<string>();
            RootEntityId = id;
            RootEntityLogicalName = logicalName;
            Config = config;
            GetDefaultConfig();

            if (Type.GetScriptType(Config) == "undefined")
            {
                // Config is not supplied
                CancelRequested = true;
                Window.SetTimeout(delegate()
                {
                    ReportError(new Exception(ResourceStrings.NoConfigurationError));
                }, 100);
                return;
            }

            // Get default demo mode
            if ((Type.GetScriptType(Config.DemoModeInitialState) != "undefined"))
            {
                DemoMode.SetValue(config.DemoModeInitialState.Value);
            }

            // Get default max iterations
            if ((Type.GetScriptType(Config.IterationCountPerLoad) == "undefined"))
            {
                Config.IterationCountPerLoad = MaxIterations;
            }

            // Queue the root load
            if (Config.Entities != null && Config.Entities.Count > 0)
            {
                Queue.Enqueue(new QueuedLoad(new List<string>(new string[] { id.Value }), Config.Entities[logicalName], null));
            }

            DemoTick();
        }
 public Contact(string firstName, string lastName, ObservableArray<Phone> phones)
 {
     this.FirstName = firstName;
     this.LastName = lastName;
     this.Phones = phones;
 }
 public Contact(string firstName, string lastName, ObservableArray <Phone> phones)
 {
     this.FirstName = firstName;
     this.LastName  = lastName;
     this.Phones    = phones;
 }
        public AnimatedTransitionsViewModel()
        {
            var self = this;

            Planets = Knockout.ObservableArray(new[]{
                new Planet( name: "Mercury", type: "rock"),
                new Planet( name: "Venus", type: "rock"),
                new Planet( name: "Earth", type: "rock"),
                new Planet( name: "Mars", type: "rock"),
                new Planet( name: "Jupiter", type: "gasgiant"),
                new Planet( name: "Saturn", type: "gasgiant"),
                new Planet( name: "Uranus", type: "gasgiant"),
                new Planet( name: "Neptune", type: "gasgiant"),
                new Planet( name: "Pluto", type: "rock")
            });

            TypeToShow = Knockout.Observable("all");
            DisplayAdvancedOptions = Knockout.Observable(false);
            AddPlanet = type => self.Planets.Push(new Planet("New planet", type));

            PlanetsToShow = Knockout.Computed(() =>
                {
                    // Represents a filtered list of planets
                    // i.e., only those matching the "typeToShow" condition
                    var desiredType = self.TypeToShow.Value;

                    if (desiredType == "all") return self.Planets.Value;
                    return KnockoutUtils.ArrayFilter(self.Planets.Value, planet => planet.Type == desiredType);
                });

            // Animation callbacks for the planets list
            ShowPlanetElement = elem => {
                if (elem.NodeType == ElementType.Element)
                    jQuery.FromElement(elem).Hide().SlideDown();
            };
            HidePlanetElement = elem => {
                if (elem.NodeType == ElementType.Element)
                    jQuery.FromElement(elem).SlideUp(EffectDuration.Slow, () => jQuery.FromElement(elem).Remove());
            };

            // Here's a custom Knockout binding that makes elements
            // shown/hidden via jQuery's fadeIn()/fadeOut() methods
            //Could be stored in a separate utility library
            Knockout.BindingHandlers["fadeVisible"] = new InlineBindingHandler<Observable<bool>>(
                init: (element, valueAccessor, allBindingsAccessor, model) => {
                    // Initially set the element to be instantly visible/hidden
                    // depending on the value
                    var value = valueAccessor.Invoke();

                    // Use "unwrapObservable" so we can handle values that may
                    // or may not be observable
                    jQuery.FromElement(element).Toggle(KnockoutUtils.UnwrapObservable(value));
                },
                update: (element, valueAccessor, allBindingsAccessor, model) => {
                    // Whenever the value subsequently changes, slowly fade the
                    // element in or out
                    var value = valueAccessor.Invoke();
                    if (KnockoutUtils.UnwrapObservable(value)) jQuery.FromElement(element).FadeIn();
                    else jQuery.FromElement(element).FadeOut();
                }
            );
        }
 public TweetGroup(Observable<string> name, ObservableArray<string> userNames)
 {
     this.Name = name;
     this.UserNames = userNames;
 }