Exemplo n.º 1
0
void CtrlrLuaMethodEditor::addNewMethod(ValueTree parentGroup)
{
	AlertWindow wnd(METHOD_NEW, String::empty, AlertWindow::InfoIcon, this);
	wnd.addTextEditor ("methodName", "myNewMethod", "Method name", false);
	wnd.addComboBox ("templateList", getMethodManager().getTemplateList(), "Initialize from template");

	wnd.addButton ("OK", 1, KeyPress(KeyPress::returnKey));
	wnd.addButton ("Cancel", 0, KeyPress(KeyPress::escapeKey));
	if (wnd.runModalLoop())
	{
		const String methodName = wnd.getTextEditorContents("methodName");

		if (getMethodManager().isValidMethodName(methodName))
		{
			const String initialCode = getMethodManager().getDefaultMethodCode(methodName, wnd.getComboBoxComponent("templateList")->getText());

			getMethodManager().addMethod (parentGroup, wnd.getTextEditorContents("methodName"), initialCode, String::empty);
		}
		else
		{
			WARN("Invalid method name, please correct");
		}
	}

	updateRootItem();

	saveSettings(); // save settings
}
Exemplo n.º 2
0
CtrlrLuaMethodEditor::CtrlrLuaMethodEditor (CtrlrPanel &_owner)
    : owner(_owner),
      methodEditArea (nullptr),
	  methodTree(nullptr),
	  resizer(nullptr),
	  caseCansitive(true),
	  lookInString("Current"),
	  searchInString("Editor"),
	  findDialogActive(false),
	  currentSearchString(String::empty)
{
	addAndMakeVisible (resizer			= new StretchableLayoutResizerBar (&layoutManager, 1, true));
	addAndMakeVisible (methodTree		= new CtrlrValueTreeEditorTree ("LUA METHOD TREE"));
    addAndMakeVisible (methodEditArea	= new CtrlrLuaMethodEditArea(*this));

	methodTree->setRootItem (new CtrlrValueTreeEditorItem(*this, getMethodManager().getManagerTree(), Ids::luaMethodName));
	getMethodManager().setMethodEditor (this);
	methodTree->setMultiSelectEnabled (true);

	layoutManager.setItemLayout (0, -0.001, -1.0, -0.29);
 	layoutManager.setItemLayout (1, 8, 8, 8);
 	layoutManager.setItemLayout (2, -0.001, -1.0, -0.69);

	addKeyListener (this);
	getMethodManager().setMethodEditor (this);
	componentTree.addListener (this);
    setSize (700, 600);
}
Exemplo n.º 3
0
void CtrlrLuaMethodEditor::removeGroup(ValueTree parentGroup)
{
	if (parentGroup.getNumChildren() > 0)
	{
		if (SURE("Remove group: "+parentGroup.getProperty(Ids::name).toString()+" ?", this))
		{
			getMethodManager().removeGroup(parentGroup);
		}
	}
	else
	{
		getMethodManager().removeGroup(parentGroup);
	}

	updateRootItem();

	saveSettings(); // save settings
}
Exemplo n.º 4
0
CtrlrLuaMethod *CtrlrLuaMethodEditor::setEditedMethod (const String &methodName)
{
	CtrlrLuaMethod *method = getMethodManager().getMethodByName(methodName);
	if (method != nullptr)
	{
		return (setEditedMethod (method->getUuid()));
	}

	return (nullptr);
}
Exemplo n.º 5
0
void CtrlrLuaMethodEditor::addNewGroup(ValueTree parentGroup)
{
	AlertWindow wnd(GROUP_NEW, String::empty, AlertWindow::InfoIcon, this);
	wnd.addTextEditor ("groupName", "New Group", "Group name", false);
	wnd.addButton ("OK", 1, KeyPress(KeyPress::returnKey));
	wnd.addButton ("Cancel", 0, KeyPress(KeyPress::escapeKey));
	if (wnd.runModalLoop())
	{
		if (parentGroup.hasType (Ids::luaMethodGroup))
		{
			getMethodManager().addGroup (wnd.getTextEditorContents("groupName"), parentGroup.getProperty(Ids::uuid).toString());
		}
		else
		{
			getMethodManager().addGroup (wnd.getTextEditorContents("groupName"));
		}
	}

	updateRootItem();

	saveSettings(); // save settings
}
Exemplo n.º 6
0
CtrlrLuaMethodEditor::CtrlrLuaMethodEditor (CtrlrPanel &_owner)
    : owner(_owner),
      methodEditArea (nullptr),
	  methodTree(nullptr),
	  resizer(nullptr)
{
	addAndMakeVisible (resizer			= new StretchableLayoutResizerBar (&layoutManager, 1, true));
	addAndMakeVisible (methodTree		= new CtrlrValueTreeEditorTree ("LUA METHOD TREE"));
    addAndMakeVisible (methodEditArea	= new CtrlrLuaMethodEditArea(*this));

	methodTree->setRootItem (new CtrlrValueTreeEditorItem(*this, getMethodManager().getManagerTree(), Ids::luaMethodName));
	getMethodManager().setMethodEditor (this);
	methodTree->setMultiSelectEnabled (true);

	layoutManager.setItemLayout (0, -0.001, -1.0, -0.29);
 	layoutManager.setItemLayout (1, 8, 8, 8);
 	layoutManager.setItemLayout (2, -0.001, -1.0, -0.69);

	addKeyListener (this);
	getMethodManager().setMethodEditor (this);
	componentTree.addListener (this);
    setSize (700, 600);
}
Exemplo n.º 7
0
void CtrlrLuaMethodEditor::addMethodFromFile(ValueTree parentGroup)
{
	FileChooser fc ("Select LUA files", lastBrowsedSourceDir, "*.lua;*.txt");
	if (fc.browseForMultipleFilesToOpen ())
	{
		Array <File> results = fc.getResults();

		for (int i=0; i<results.size(); i++)
		{
			getMethodManager().addMethodFromFile (parentGroup, results[i]);
		}
	}

	updateRootItem();

	saveSettings(); // save settings
}
Exemplo n.º 8
0
void CtrlrLuaMethodEditor::searchResultClicked (const String &methodName, const int lineNumber, const int resultPositionStart, const int resultPositionEnd)
{
//	_DBG("CtrlrLuaMethodEditor::searchResultClicked");
//	_DBG("\t"+methodName+" ln:"+STR(lineNumber)+" s:"+STR(resultPositionStart)+" e:"+STR(resultPositionEnd));

	CtrlrLuaMethod *method = getMethodManager().getMethodByName(methodName);
	if (method != nullptr)
	{
		setEditedMethod (method->getUuid());

		if (method->getCodeEditor())
		{
			CodeEditorComponent *ed = method->getCodeEditor()->getCodeComponent();
			CodeDocument &doc		= method->getCodeEditor()->getCodeDocument();
			if (ed)
			{
				ed->selectRegion (CodeDocument::Position(doc,resultPositionStart), CodeDocument::Position(doc,resultPositionEnd));
			}
		}
	}
}
Exemplo n.º 9
0
CtrlrLuaMethod *CtrlrLuaMethodEditor::setEditedMethod (const Uuid &methodUuid)
{
	CtrlrLuaMethod *method = getMethodManager().getMethodByUuid(methodUuid);

	if (method != nullptr)
	{
		if (method->getCodeEditor() == nullptr)
		{
			/* the method is not yest beeing edited */
			createNewTab (method);
		}
		else
		{
			/* it looks like the method is edited, switch to the tab that has it */
			setCurrentTab (method);
		}

		return (method);
	}

	return (nullptr); // A method has been selected that's invalid
}
Exemplo n.º 10
0
void CtrlrLuaMethodEditor::itemClicked (const MouseEvent &e, ValueTree &item)
{
	if (e.mods.isPopupMenu())
	{
		if ( item.hasType (Ids::luaManagerMethods) || item.hasType (Ids::luaMethodGroup) )
		{
			PopupMenu m;
			m.addSectionHeader ("Group operations");
			m.addItem (1, "Add method");
			m.addItem (2, "Add files");
			m.addItem (3, "Add group");
			m.addSeparator();
			if (item.hasType (Ids::luaMethodGroup))
			{
				m.addItem (4, "Remove group");
				m.addItem (5, "Rename group");
			}

			m.addSeparator();
			m.addItem (6, "Sort by name");
			m.addItem (7, "Sort by size");

			const int ret = m.show();

			if (ret == 1)
			{
				addNewMethod (item);
			}
			else if (ret == 2)
			{
				addMethodFromFile (item);
			}
			else if (ret == 3)
			{
				addNewGroup (item);
			}
			else if (ret == 4)
			{
				removeGroup (item);
			}
			else if (ret == 5)
			{
				renameGroup (item);
			}
			else if (ret == 6)
			{
				ChildSorter sorter(true);
				getMethodManager().getManagerTree().sort (sorter, nullptr, false);

				triggerAsyncUpdate();
			}
			else if (ret == 7)
			{
				ChildSorter sorter(false);
				getMethodManager().getManagerTree().sort (sorter, nullptr, false);

				triggerAsyncUpdate();
			}
		}
		else if (item.hasType(Ids::luaMethod))
		{
			PopupMenu m;
			m.addSectionHeader ("Method " + item.getProperty(Ids::luaMethodName).toString());
			if ((int)item.getProperty(Ids::luaMethodSource) == CtrlrLuaMethod::codeInFile)
			{
				if (!File(item.getProperty(Ids::luaMethodSourcePath)).existsAsFile())
				{
					m.addItem (12, "Locate file on disk");
				}
			}

			m.addSeparator();
			m.addItem (2,"Remove method");

			const int ret = m.show();

			if (ret == 11)
			{
				/* convert a in-memory method to a file based one */
			}
			else if (ret == 12)
			{
				/* locate a missing file on disk */
			}
			else if (ret == 10)
			{
				/* convert a method from a file to a in-memory property */
			}
			else if (ret == 2)
			{
				/* remove a method */
				if (SURE("Delete the selected method?", this))
				{
					{
						methodEditArea->closeTabWithMethod (item);
						getMethodManager().removeMethod (item.getProperty(Ids::uuid).toString());
					}

					triggerAsyncUpdate();
				}
			}
		}
	}
}