@Override
	public void setMode(EditorMode mode) {
		if (mode == mode_) {
			return;
		}

		if (mode == EditorMode.GUI) {
			deselect();
			topTabPane_.removeAll();
			managers_.clear();
			SettingPanel p = new SettingPanel();
			topTabPane_.addTab("Settings", new JScrollPane(p,
					JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
					JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));

			p.setMode(mode);
			managers_.add(p);

			if (layerManager_.getParent() != null) {
				bottomTabPane_.removeTabAt(1);
			}
		} else if (mode == EditorMode.NODE) {
			deselect();
			topTabPane_.removeAll();
			managers_.clear();

			NodeSettingPanel np = new NodeSettingPanel();
			topTabPane_.addTab("Settings", new JScrollPane(np,
					JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
					JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
			managers_.add(np);

			np.setMode(mode);

			SettingPanel p = new SettingPanel();
			topTabPane_.addTab("Nodes", new JScrollPane(p,
					JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
					JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
			managers_.add(p);

			p.setMode(mode);

			if (layerManager_.getParent() == null) {
				bottomTabPane_.addTab("Layers", layerManager_);
			}
		} else if (mode.isExec()) {
			deselect();
			topTabPane_.removeAll();
			managers_.clear();

			SettingPanel p = new SettingPanel();
			topTabPane_.addTab("GUI Setting", new JScrollPane(p,
					JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
					JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
			managers_.add(p);

			p.setMode(mode);

			NodeSettingPanel np = new NodeSettingPanel();
			topTabPane_.addTab("Node Settings", new JScrollPane(np,
					JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
					JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
			managers_.add(np);

			np.setMode(mode);

			if (layerManager_.getParent() == null) {
				bottomTabPane_.addTab("Layers", layerManager_);
			}

		}
		mode_ = mode;
	}