IOSSettingsWidget.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. //
  2. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  3. // LICENSE: Atomic Game Engine Editor and Tools EULA
  4. // Please see LICENSE_ATOMIC_EDITOR_AND_TOOLS.md in repository root for
  5. // license information: https://github.com/AtomicGameEngine/AtomicGameEngine
  6. //
  7. import BuildSettingsWindow = require("../BuildSettingsWindow");
  8. class IOSSettingsWidget extends Atomic.UIWidget implements BuildSettingsWindow.BuildSettingsWidget {
  9. constructor() {
  10. super();
  11. this.load("AtomicEditor/editor/ui/buildsettings_ios.tb.txt");
  12. this.settings = ToolCore.toolSystem.project.buildSettings.iOSBuildSettings;
  13. this.appNameEdit = <Atomic.UIEditField>this.getWidget("app_name");
  14. this.packageNameEdit = <Atomic.UIEditField>this.getWidget("app_package");
  15. this.productNameEdit = <Atomic.UIEditField>this.getWidget("product_name");
  16. this.companyNameEdit = <Atomic.UIEditField>this.getWidget("company_name");
  17. this.provisionPathEdit = <Atomic.UIEditField>this.getWidget("provision_path");
  18. this.appIDPrefixField = <Atomic.UITextField>this.getWidget("appid_prefix");
  19. this.refreshWidgets();
  20. this.subscribeToEvent(this, "WidgetEvent", (ev) => this.handleWidgetEvent(ev));
  21. }
  22. refreshWidgets() {
  23. this.appNameEdit.text = this.settings.appName;
  24. this.packageNameEdit.text = this.settings.packageName;
  25. this.productNameEdit.text = this.settings.productName;
  26. this.companyNameEdit.text = this.settings.companyName;
  27. this.provisionPathEdit.text = this.settings.provisionFile;
  28. this.appIDPrefixField.text = this.settings.appIDPrefix;
  29. }
  30. handleWidgetEvent(ev: Atomic.UIWidgetEvent): boolean {
  31. if (ev.type == Atomic.UI_EVENT_TYPE_CLICK) {
  32. if (ev.target.id == "choose_provision_path") {
  33. var fileUtils = new Editor.FileUtils();
  34. var path = fileUtils.getMobileProvisionPath();
  35. if (path.length) {
  36. var platform = <ToolCore.PlatformIOS> ToolCore.toolSystem.getPlatformByName("IOS");
  37. var prefix = platform.parseProvisionAppIdentifierPrefix(path);
  38. if (prefix.length) {
  39. this.provisionPathEdit.text = path;
  40. this.appIDPrefixField.text = prefix;
  41. }
  42. }
  43. return true;
  44. }
  45. }
  46. return true;
  47. }
  48. storeValues() {
  49. this.settings.appName = this.appNameEdit.text;
  50. this.settings.packageName = this.packageNameEdit.text;
  51. this.settings.productName = this.productNameEdit.text;
  52. this.settings.companyName = this.companyNameEdit.text;
  53. this.settings.provisionFile = this.provisionPathEdit.text;
  54. this.settings.appIDPrefix = this.appIDPrefixField.text;
  55. }
  56. settings: ToolCore.IOSBuildSettings;
  57. appNameEdit: Atomic.UIEditField;
  58. packageNameEdit: Atomic.UIEditField;
  59. productNameEdit: Atomic.UIEditField;
  60. companyNameEdit: Atomic.UIEditField;
  61. provisionPathEdit: Atomic.UIEditField;
  62. appIDPrefixField: Atomic.UITextField;
  63. }
  64. export = IOSSettingsWidget;