public void Init(IQFrameworkContainer container)
            {
                var expendLayout = new TreeNode(true, LocaleText.ResKit)
                                   .AddTo(this);

                var verticalLayout = new VerticalLayout("box");

                expendLayout.Add2Spread(verticalLayout);

                // verticalLayout

                var persistLine = new HorizontalLayout();

                new LabelView("PersistantPath:").AddTo(persistLine).Width(100);
                new TextView(Application.persistentDataPath).AddTo(persistLine);
                persistLine.AddTo(verticalLayout);

                new ButtonView(LocaleText.GoToPersistent, () => {
                    EditorUtility.RevealInFinder(Application.persistentDataPath);
                }).AddTo(verticalLayout);

                mResVersion          = EditorPrefs.GetString(KEY_QAssetBundleBuilder_RESVERSION, "100");
                mEnableGenerateClass = EditorPrefs.GetBool(KEY_AUTOGENERATE_CLASS, true);

                switch (EditorUserBuildSettings.activeBuildTarget)
                {
                case BuildTarget.WebGL:
                    mBuildTargetIndex = 3;
                    break;

                case BuildTarget.Android:
                    mBuildTargetIndex = 2;
                    break;

                case BuildTarget.iOS:
                    mBuildTargetIndex = 1;
                    break;

                default:
                    mBuildTargetIndex = 0;
                    break;
                }

                new ToolbarView(mBuildTargetIndex)
                .AddMenu("win/osx", (_) => { })
                .AddMenu("iOS", (_) => { })
                .AddMenu("Android", (_) => { })
                .AddMenu("WebGL", (_) => { })
                .AddTo(verticalLayout);

                new ToggleView(LocaleText.AutoGenerateClass, mEnableGenerateClass)
                .AddTo(verticalLayout)
                .Toggle.Bind(v => mEnableGenerateClass = v);

                new ToggleView(LocaleText.SimulationMode, ResKitAssetsMenu.SimulateAssetBundleInEditor)
                .AddTo(verticalLayout)
                .Toggle.Bind(v => ResKitAssetsMenu.SimulateAssetBundleInEditor = v);

                var resVersionLine = new HorizontalLayout()
                                     .AddTo(verticalLayout);

                new LabelView("ResVesion:").AddTo(resVersionLine).Width(100);

                new TextView(mResVersion).AddTo(resVersionLine)
                .Content.Bind(v => mResVersion = v);

                new ButtonView(LocaleText.GenerateClass, () => {
                    BuildScript.WriteClass();
                    AssetDatabase.Refresh();
                }).AddTo(verticalLayout);

                new ButtonView(LocaleText.Build, () => {
                    // this.PushCommand (() => {
                    BuildWithTarget(EditorUserBuildSettings.activeBuildTarget);
                    // });

                    // Close ();
                    return;
                }).AddTo(verticalLayout);

                new ButtonView(LocaleText.ForceClear, () => {
                    ForceClear();
                }).AddTo(verticalLayout);
            }
 private static void BuildWithTarget(BuildTarget buildTarget)
 {
     AssetDatabase.RemoveUnusedAssetBundleNames();
     AssetDatabase.Refresh();
     BuildScript.BuildAssetBundles(buildTarget);
 }
        private void OnGUI()
        {
            scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Height(400));
            GUILayout.BeginVertical();
            GUILayout.BeginHorizontal();
            GUILayout.Label("PersistanePath:");
            GUILayout.TextField(Application.persistentDataPath);
            GUILayout.EndHorizontal();
            if (GUILayout.Button("Go To Persistance"))
            {
                EditorUtility.RevealInFinder(Application.persistentDataPath);
            }

            DrawMenu();

            isEnableGenerateClass = GUILayout.Toggle(isEnableGenerateClass, "auto generate class when build");
            ResKitAssetsMenu.SimulateAssetBundleInEditor =
                GUILayout.Toggle(ResKitAssetsMenu.SimulateAssetBundleInEditor, "Simulation Mode");

            GUILayout.BeginHorizontal();
            GUILayout.Label("ResVersion:");
            resVersion = GUILayout.TextField(resVersion);
            GUILayout.EndHorizontal();

            if (GUILayout.Button("Generate Class"))
            {
                BuildScript.WriteClass();
                AssetDatabase.Refresh();
            }

            if (GUILayout.Button("Build"))
            {
                BuildWithTarget(EditorUserBuildSettings.activeBuildTarget);
                Close();
                return;
            }

            if (GUILayout.Button("ForceClear"))
            {
                ForceClear();
            }

            GUILayout.EndVertical();
            GUILayout.Space(50);

            EditorGUILayout.EndScrollView();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Url:");
            mHttpUrl = GUILayout.TextField(mHttpUrl);
            GUILayout.EndHorizontal();

            if (GUILayout.Button("Http Get"))
            {
                ObservableWWW.Get(mHttpUrl).Subscribe(response => { Log.E(response); });
            }

            if (GUILayout.Button("Http Post"))
            {
                ObservableWWW.Get("http://127.0.0.1:8000/demo/save/?content=" + new OK().ToJson()).Subscribe(response => { Log.E(response); });
            }
        }