Files
2015-09-25 11:34:51 +03:00

87 lines
3.2 KiB
TypeScript

import definition = require("controls-page");
import frameModule = require("ui/frame");
import pagesModule = require("ui/page");
import stackLayoutModule = require("ui/layouts/stack-layout");
import labelModule = require("ui/label");
import buttonModule = require("ui/button");
import textFieldModule = require("ui/text-field");
import enums = require("ui/enums");
import switchModule = require("ui/switch");
export class NavPage extends pagesModule.Page implements definition.ControlsPage {
constructor(id: number) {
super();
this.id = "NavPage " + id;
var stackLayout = new stackLayoutModule.StackLayout();
stackLayout.orientation = enums.Orientation.vertical;
var goBackButton = new buttonModule.Button();
goBackButton.text = "<-";
goBackButton.on(buttonModule.Button.tapEvent, function () {
frameModule.topmost().goBack();
});
stackLayout.addChild(goBackButton);
this.on(pagesModule.Page.navigatedToEvent, function () {
//console.log("Navigated to NavPage " + id + "; backStack.length: " + frameModule.topmost().backStack.length);
goBackButton.isEnabled = frameModule.topmost().canGoBack();
});
var stateLabel = new labelModule.Label();
stateLabel.text = "NavPage " + id;
stackLayout.addChild(stateLabel);
var textField = new textFieldModule.TextField();
textField.text = "";
stackLayout.addChild(textField);
var changeStateButton = new buttonModule.Button();
changeStateButton.text = "Click me!"
var clickCount = 0;
changeStateButton.on(buttonModule.Button.tapEvent, () => {
//stateLabel.text = "<<<CHANGED STATE>>>";
//textField.text = "<<<CHANGED STATE>>>";
changeStateButton.text = (clickCount++).toString();
});
stackLayout.addChild(changeStateButton);
var optionsLayout = new stackLayoutModule.StackLayout();
var addToBackStackLabel = new labelModule.Label();
addToBackStackLabel.text = "backStackVisible";
optionsLayout.addChild(addToBackStackLabel);
var addToBackStackSwitch = new switchModule.Switch();
addToBackStackSwitch.checked = true;
optionsLayout.addChild(addToBackStackSwitch);
var clearHistoryLabel = new labelModule.Label();
clearHistoryLabel.text = "clearHistory";
optionsLayout.addChild(clearHistoryLabel);
var clearHistorySwitch = new switchModule.Switch();
clearHistorySwitch.checked = false;
optionsLayout.addChild(clearHistorySwitch);
stackLayout.addChild(optionsLayout);
var forwardButton = new buttonModule.Button();
forwardButton.text = "->";
forwardButton.on(buttonModule.Button.tapEvent, function () {
var pageFactory = function () {
return new NavPage(id + 1);
};
frameModule.topmost().navigate({
create: pageFactory,
backstackVisible: addToBackStackSwitch.checked,
clearHistory: clearHistorySwitch.checked
});
});
stackLayout.addChild(forwardButton);
this.content = stackLayout;
}
}