GithubHelp home page GithubHelp logo

jphp-group / develnext Goto Github PK

View Code? Open in Web Editor NEW
100.0 31.0 28.0 302.92 MB

JavaFX and IDE for JPHP (only russian localization, english - in progress)

Home Page: http://develnext.org

License: Mozilla Public License 2.0

Java 26.78% PHP 37.94% CSS 0.47% Batchfile 0.33% C 1.69% HTML 13.90% Shell 0.39% Inno Setup 0.23% ANTLR 1.00% Perl 0.13% Python 0.05% XSLT 3.21% JavaScript 0.01% Roff 13.88%
ide develnext jphp php rad javafx editor gui designer

develnext's Introduction

DevelNext

GUI and IDE for php based on jphp, for beginners only.

DevelNext Logo


Dependencies

  • jphp 0.9.+ (not published yet, you can build it from the jphp sources!)
  • java 1.8+ (jre)
  • gradle 2.4+
  • launch4j 3.8

How to get the DevelNext IDE distrubutive?

Install JDK, clone repo and use the following console commands:

cd /path/to/repo

// fetch all submodules (jphp, richtextfx, etc.)
git submodule update --init

// install rich text fx
cd 3rd-party/RichTextFX
./gradlew install

// install jphp
cd ../3rd-party/jphp
./gradlew install

// install wizard-framework
cd ../3rd-party/wizard-framework
./gradlew npmInstall installGulp install

cd ../../

// for windows
./gradlew distIdeWindows

// for linux
./gradlew distIdeLinux

You can find the builded distrubutive in develnext/build/install/develnext.

License

Under MPL 2.0 (https://www.mozilla.org/MPL/2.0/)

Как получить дистрибутив DevelNext?

Установите JDK (Java), склонируйте репозиторий и используйте следующие консольные команды:

cd /path/to/repo

// fetch all submodules (jphp, richtextfx, etc.)
git submodule update --init

// install rich text fx
cd 3rd-party/RichTextFX
gradlew install

// install jphp
cd ../3rd-party/jphp
gradlew install

// install wizard-framework for web
cd ../3rd-party/wizard-framework
gradlew npmInstall installGulp install

cd ../../

// for windows
gradlew distIdeWindows

// for linux
gradlew distIdeLinux

Найти собранный дистрибутив можно будет в папке develnext/build/install/develnext.

Если проект не собирается, значит на текущем этапе в develnext используется еще неопубликованная версия jphp, поэтому ее нужно собрать вручную с нужной ветки (см. версию), выполнив команду gradlew install в папке исходников jphp.

Лицензия

Under MPL 2.0 (https://www.mozilla.org/MPL/2.0/)

develnext's People

Contributors

artembatura avatar ded-alex avatar dim-s avatar serafimarts avatar tssaltan avatar yet-another-nagayev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

develnext's Issues

Ошибка в файле 'res://ide/formats/form/context/DeleteMenuCommand.php'

Ошибка в файле 'res://ide/formats/form/context/DeleteMenuCommand.php'
-> на строке 49
#0 {closure}() called at [res://ide/editors/menu/ContextMenu.php:96]
#1 ide\formats\form\context\DeleteMenuCommand->onExecute() called at [res://ide/editors/menu/ContextMenu.php:97]
#2 php\gui\designer\UXDesigner->selectNode() called at [res://ide/formats/form/context/DeleteMenuCommand.php:49]
#3 {main}

AutoCompletePane java.lang.NullPointerException

Редко но возникает ошибка в автодополнении:

php\lang\JavaException: java.lang.NullPointerException 
         in file 'res://ide/autocomplete/ui/AutoCompletePane.php', on line 279 

#0 {closure}() called at [res://ide/autocomplete/ui/AutoCompletePane.php:371]
#1 php\gui\designer\UXSyntaxTextArea->insertToCaret() called at [res://ide/autocomplete/ui/AutoCompletePane.php:279]
#2 {main}

Переделать кнопку создания (плюс) у табов

По нажатию на кнопку, мы должны переходить на контент таба, внутри которого списком должны отображаться варианты того что можно создать (форма, модуль и т.п.). Необходимо реализовать расширяемую систему по добавлению пунктов в этот таб.

develNext build failed

Hi,

I'm really enthusiastic with your project. There are a lot of things i want to do with Jphp.

When will be the v0.7.2 release date?

Have a nice day.

[php-gui-ext (?) bug] __callStatic + click

Example:

class A
{
    public static function __callStatic($method, $args = [])
    {
        echo get_called_class() . '::' . $method . "\n";
    }
}

class B extends A {}

\php\gui\UXApplication::launch(function(\php\gui\UXForm $form) {

    $button = new \php\gui\UXButton();
    $button->text = 'TEST!';
    $button->on('click', function(){ B::test(); });

    $form->add($button);
    $form->show();

});

First click:

B::test

Second click:

Fatal error: Uncaught exception 'EngineException' with message 'Missing argument 1 ($method) for A::__callStatic()' in JPHP-INF/.bootstrap.php on line 24, position 10
Stack Trace:
#0 {closure}() called at [JPHP-INF/.bootstrap.php:23]
#1 {main}
  thrown in JPHP-INF/.bootstrap.php on line 24

Релизовать таймер для очистки кеша среды

Реализовать механизм автоматической очистки файлов кеша среды из папки {home}/.DevelNext/cache, удалять старые файлы, которые были созданы более 1 недели назад. Также возможно подумать о том, чтобы обновлять время изменения файлов при их запросе средой, чтобы дать знать системе, что эти файлы из кеша еще используются.

Ubuntu 16.04. Открытие папки после компелации

  1. Открываем программу
  2. Создаем проект
  3. Добавляем 1 кнопку и вешаем на нее простое событие, например диалоговое окно
  4. Запустили проект, проверили - все хорошо
  5. Компилируем проект в jar файл, скомпилировался - все хорошо,
  6. После компиляции отображается окно "Сборка завершена" (https://drive.google.com/file/d/0B6NtLvPwvvVVVURfMmlxWEVKaDA/view). Нажимаем на кнопку "Открыть пап..." и тогда все зависает. Приходится принудительно закрывать программу и снова открывать. Сам файл компилируется, все хорошо, но вот только папку не открывает.

ProcessorException: Content is not allowed in prolog при чтени файла поведений

Каким-то странным образом содержимое файлов с поведением становится пустым, возможно по причине утери данных, отключения света и т.д, но возможно и нет. Нужно предотвратить данный тип ошибки, сообщать пользователю, что файл поврежден и предлагать создать новый чистый файл.

php\format\ProcessorException: Content is not allowed in prolog. 
         in file 'res://php/gui/framework/behaviour/custom/BehaviourLoader.php', on line 86 

#0 {closure}() called at [res://ide/editors/WelcomeEditor.php:41]
#1 ide\Ide->executeCommand() called at [res://ide/editors/WelcomeEditor.php:42]
#2 ide\commands\OpenProjectCommand->onExecute() called at [res://ide/Ide.php:658]
#3 ide\forms\OpenProjectForm->showDialog() called at [res://ide/commands/OpenProjectCommand.php:42]
#4 php\gui\UXForm->showAndWait() called at [res://ide/forms/mixins/DialogFormMixin.php:30]
#5 {closure}() called at [res://timer/AccurateTimer.php:158]
#6 {closure}() called at [res://timer/AccurateTimer.php:159]
#7 ide\systems\ProjectSystem::open() called at [res://ide/forms/OpenProjectForm.php:292]
#8 ide\project\Project->open() called at [res://ide/systems/ProjectSystem.php:247]
#9 ide\systems\FileSystem::open() called at [res://ide/project/Project.php:583]
#10 ide\systems\FileSystem::fetchEditor() called at [res://ide/systems/FileSystem.php:235]
#11 ide\editors\FormEditor->load() called at [res://ide/systems/FileSystem.php:212]
#12 ide\editors\FormEditor->loadOthers() called at [res://ide/editors/FormEditor.php:455]
#13 ide\behaviour\IdeBehaviourManager->load() called at [res://ide/editors/FormEditor.php:432]
#14 php\gui\framework\behaviour\custom\BehaviourLoader::load() called at [res://ide/behaviour/IdeBehaviourManager.php:194]
#15 php\xml\XmlProcessor->parse() called at [res://php/gui/framework/behaviour/custom/BehaviourLoader.php:86]
#16 {main}

Не копируются в редакторе клоны клонов

Если в редакторе добавить из прототипов объект, потом его скопировать - получится копия-клон. Эта копия клон в дальнейшем в редакторе не копируется и не вставляется.

Некорректное поведение глобальных событий клавиатуры при потере фокуса формы.

Перетащил объект в угол, зажал вправо, теперь объект как бы движется вправо пока не достигнет границ, потом слева опять начинает, дак вот, а если при этом (зажав кнопку вправо) потерять фокус с формы, то объект продолжит уже без моих команд ехать вправо, так происходит с любых направлением.

IllegalStateException: Platform.exit has been called при закрытии среды

Бага не критичная, но надо убрать этот exception:

php\lang\IllegalStateException: java.lang.IllegalStateException: Platform.exit has been called 
         in file 'res://ide/account/api/AbstractService.php', on line 334 
         in project '' 

#0 script\TimerScript->doInterval() called at [res://script/TimerScript.php:98]
#1 php\gui\framework\AbstractScript->trigger() called at [res://script/TimerScript.php:126]
#2 ide\account\ServiceManager->updateStatus() called at [res://php/gui/framework/AbstractScript.php:170]
#3 ide\account\api\AbstractService->statusAsync() called at [res://ide/account/ServiceManager.php:214]
#4 ide\account\api\AbstractService->__call() called at [res://ide/account/ServiceManager.php:214]
#5 uiLater() called at [res://ide/account/api/AbstractService.php:334]
#6 {main}

Таблицы

Добавьте в Alpha-5 таблицы, ну прям без них за среду и браться не получается

Cannot call 'getFormEditors' method of non-object

При закрытии вкладки Welcome в DevelNext Beta-1 появляется ошибка:

EngineException
Cannot call 'getFormEditors' method of non-object

Ошибка в файле 'res://ide/project/control/FormsProjectControlPane.php'
    -> на строке 70

#0 {closure}() called at [res://ide/ui/ListMenu.php:20]
#1 ide\ui\ListMenu->cellRender() called at [res://ide/ui/ListMenu.php:21]
#2 ide\project\control\AbstractEditorsProjectControlPane->getMenuCount() called at [res://ide/ui/ListMenu.php:51]
#3 ide\project\control\FormsProjectControlPane->getItems() called at [res://ide/project/control/AbstractEditorsProjectControlPane.php:91]
#4 {main}

IOException: Cannot seek to 0 in PhpParser.php

php\io\IOException: Cannot seek to 0 
         in file 'res://ide/utils/PhpParser.php', on line 580

#0 {closure}() called at [res://ide/editors/form/IdeEventListPane.php:423]
#1 {closure}() called at [res://ide/editors/form/IdeEventListPane.php:424]
#2 ide\formats\form\SourceEventManager->addBind() called at [res://ide/editors/form/IdeEventListPane.php:712]
#3 ide\utils\PhpParser->addUseImports() called at [res://ide/formats/form/SourceEventManager.php:392]
#4 ide\utils\PhpParser->findUseImports() called at [res://ide/utils/PhpParser.php:559]
#5 ide\utils\PhpParser->getTokenizer() called at [res://ide/utils/PhpParser.php:459]
#6 php\io\MiscStream->seek() called at [res://ide/utils/PhpParser.php:580]
#7 {main}

Поисковик картинок и спрайтов

Реализовать аналогичный сервису "поиск иконок" новый сервис "поиск картинок". Также требуется база картинок под этот сервис из игровых спрайтов и других изображений (например фоны). В диалоге выбора иконки/картинки реализовать дополнительную вкладку "Поиск картинок и спрайтов".

Class 'Json' not found после удаления проекта с develnext.org

Class 'Json' not found

Ошибка в файле 'res://ide/account/api/ServiceResponse.php'
-> на строке 67

#0 {closure}() called at [res://ide/account/api/AbstractService.php:325]
#1 {closure}() called at [res://ide/account/api/AbstractService.php:327]
#2 ide\account\api\ServiceResponse->toLog() called at [res://ide/commands/ShareProjectCommand.php:1]
#3 {main}

java.lang.NullPointerException в Node.lookup методе

Иногда воспроизводится, очень редко:

Причина бага неясна.

php\lang\JavaException: java.lang.NullPointerException 
         in file 'res://ide/editors/FormEditor.php', on line 844 

#0 {closure}() called at [res://ide/editors/value/TextPropertyEditor.php:43]
#1 ide\editors\value\IdPropertyEditor->showDialog() called at [res://ide/editors/value/TextPropertyEditor.php:44]
#2 ide\editors\value\TextPropertyEditor->showDialog() called at [res://ide/editors/value/IdPropertyEditor.php:47]
#3 ide\editors\value\IdPropertyEditor->applyValue() called at [res://ide/editors/value/TextPropertyEditor.php:74]
#4 ide\systems\RefactorSystem::rename() called at [res://ide/editors/value/IdPropertyEditor.php:55]
#5 ide\project\ProjectRefactorManager->rename() called at [res://ide/systems/RefactorSystem.php:30]
#6 ide\project\ProjectRefactorManager->trigger() called at [res://ide/project/ProjectRefactorManager.php:30]
#7 {closure}() called at [res://ide/misc/EventHandlerBehaviour.php:29]
#8 ide\editors\FormEditor->changeNodeId() called at [res://ide/formats/GuiFormFormat.php:285]
#9 php\gui\UXNode->lookup() called at [res://ide/editors/FormEditor.php:844]
#10 {main}

Реализовать доступ из среды к опубликованным проектам

В диалоге "открытие проекта" реализовать новую вкладку, для открытия опубликованных проектов на сайте develnext.org, не забыть про функцию удаления проекта из списка (которая будет удалять проект с сайта develnext.org). Возможно необходима функция простого скрытия проекта в этом списке, если пользователь не захочет удалять проект, но не захочет видеть его в своем списке проектов.

Сортировка проектов в порядке самые последние обновленные.

Ubuntu 16.04. Неправильные размеры окна открытия проекта

  1. Запустили программу
  2. Нажимаем кнопку "Открыть проект", видим такое окно - https://drive.google.com/file/d/0B6NtLvPwvvVVQS1uQzhlX3VCckE/view
  3. Если подвести мышкой к окну, тогда мы его можем расширить и сделать нормальным - https://drive.google.com/file/d/0B6NtLvPwvvVVYzdia0dTV0RxYlE/view

От себя могу сказать, что это типичная проблема с Ubuntu, где окна, которые не имеют минимальные размеры ведут себя непредсказуемо.

При компиляции jar файла

Exception in thread "main" java.lang.NoClassDefFoundError: javafx/scene/input/KeyCombination
at org.develnext.jphp.ext.javafx.bind.KeyCombinationMemoryOperation.getOperationClasses(KeyCombinationMemoryOperation.java:13)
at php.runtime.memory.support.MemoryOperation.register(MemoryOperation.java:235)
at php.runtime.ext.support.Extension.registerMemoryOperation(Extension.java:102)
at org.develnext.jphp.ext.javafx.JavaFXExtension.onRegister(JavaFXExtension.java:75)
at php.runtime.env.CompileScope.registerExtension(CompileScope.java:332)
at php.runtime.env.CompileScope.registerExtension(CompileScope.java:292)
at php.runtime.env.CompileScope.registerExtension(CompileScope.java:284)
at php.runtime.launcher.Launcher.initExtensions(Launcher.java:219)
at php.runtime.launcher.Launcher.run(Launcher.java:247)
at php.runtime.launcher.Launcher.run(Launcher.java:241)
at php.runtime.launcher.Launcher.run(Launcher.java:237)
at php.runtime.launcher.Launcher.main(Launcher.java:328)
Caused by: java.lang.ClassNotFoundException: javafx.scene.input.KeyCombination
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 12 more

Баг func_get_args

  1. Есть функция, в которой используется func_get_args
  2. Создаём переменную с массивом (со строками и числами баг не проявляется)
  3. Вызываем функцию из п.1, передаём аргументом массив из п.2
  4. После этого переменная становится NULL

Код:

function doButtonAction(UXEvent $event = null)
    {   
        $a = ['a', 'b', 'c'];
        $this->method($a);
        var_dump($a); // NULL ???
    }

public function method()
    {
        func_get_args();
    }

Проект: http://develnext.org/project/NLByQouFUU

Mac OS X Communications error OS_xpc_error: <error: 0x7fff7809db60>

При создании проекта на Mac OS X среда полностью зависает, а в терминале спустя некоторое время появляется следующая ошибка:

  INFO [ide.project.Project] (2016-01-25 20:27:01) Project is saved.
  INFO [ide.editors.AbstractEditor] (2016-01-25 20:27:02) Open editor for: /Users/wielski/Documents/DevelNext/Projects/wURL/src/.forms/MainForm.fxml
  INFO [ide.editors.FormEditor] (2016-01-25 20:27:02) Start refresh
  INFO [ide.editors.FormEditor] (2016-01-25 20:27:02) Finish refresh
  2016-01-25 20:27:05.856 java[21747:398194] Communications error: <OS_xpc_error: <error: 0x7fff7809db60> { count = 1, contents =
    "XPCErrorDescription" => <string: 0x7fff7809dfa8> { length = 22, contents = "Connection interrupted" }
  }>

Система эффектов-поведений

Система для возможности добавления компонентам различных эффектов javafx, например drow shadow (тень), blur и многое другое. Реализовать через поведения.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.