[IFT] Replace Java File Structure lesson for the general variant
authorAlexey Merkulov <alexey.merkulov@jetbrains.com>
Wed, 16 Sep 2020 14:01:17 +0000 (17:01 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Wed, 23 Sep 2020 09:21:51 +0000 (09:21 +0000)
GitOrigin-RevId: 818a361f8aa1fd299d9f73664a086bf2a4c4d328

ide-features-trainer/res/data/modules/java/Navigation.xml
ide-features-trainer/res/data/modules/java/Navigation/03.FileStructure.xml [deleted file]
ide-features-trainer/res/learnProjects/java/LearnProject/src/FileStructureDemo.java [new file with mode: 0644]
ide-features-trainer/src/training/learn/lesson/java/navigation/JavaFileStructureLesson.kt [new file with mode: 0644]

index 33cc664593673072ba64c7b9a114b6635240bef4..3b114a7de4d55797ce80f1b38ecce4bebf34b53f 100755 (executable)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module name="Navigation" lessonsPath="Navigation/" version="0.3" id="navigation" fileType="PROJECT" description="Jump to source, declaration/implementation, file structure and next/prev occurrences navigation">
+  <lesson-kt implementationClass="training.learn.lesson.java.navigation.JavaFileStructureLesson"/>
   <lesson filename="02.Declaration.xml" solution="training.training.solutions.Navigation.DeclarationSolution"/>
-  <lesson filename="03.FileStructure.xml" solution="training.training.solutions.Navigation.FileStructureSolution" />
   <lesson filename="04.Occurrences.xml" solution="training.training.solutions.Navigation.OccurrencesSolution"/>
 </module>
 
diff --git a/ide-features-trainer/res/data/modules/java/Navigation/03.FileStructure.xml b/ide-features-trainer/res/data/modules/java/Navigation/03.FileStructure.xml
deleted file mode 100755 (executable)
index 05e29d5..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<xml type="Scenario" name="File structure" id="Navigation.FileStructure" lang="JAVA">
-    <MouseBlock>
-        <CopyText><![CDATA[class FileStructureDemo{
-
-
-    final private String DATABASE = "MyDataBase";
-    DataEntry myPerson;
-
-    FileStructureDemo(String name, int age, String cellphone){
-        myPerson = new Person(name, age, cellphone);
-    }
-
-    interface DataEntry{
-        String getCellphone();
-        String getName();
-    }
-
-    class Person implements DataEntry {
-
-        public Person(String name, int age, String cellphone) {
-            this.name = name;
-            this.age = age;
-            this.cellphone = cellphone;
-        }
-
-        private String name;
-        private int age;
-        private String cellphone;
-
-        public String getCellphone() {
-            return cellphone;
-        }
-
-        public String getName() {
-            return name;
-        }
-
-    }
-}]]></CopyText>
-    </MouseBlock>
-    <Try trigger="FileStructurePopup">Navigation through large sources is complicated, and sometimes you need an overview of a file. Use <action>FileStructurePopup</action> to see the file structure.</Try>
-    <Win/>
-</xml>
\ No newline at end of file
diff --git a/ide-features-trainer/res/learnProjects/java/LearnProject/src/FileStructureDemo.java b/ide-features-trainer/res/learnProjects/java/LearnProject/src/FileStructureDemo.java
new file mode 100644 (file)
index 0000000..f1990ac
--- /dev/null
@@ -0,0 +1,227 @@
+
+public class FileStructureDemo {
+    public void helloWorld() {
+        System.out.println("Hello world!");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void welcome() {
+        System.out.println("JetBrains is aiming to create the best IDEs in the world!");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void printHippogryph() {
+        System.out.println("Hippogryph! Just another method to illustrate fast file structure search :)");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void hospitalInformation() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void printHomeDesign() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void printHomoNeanderthalensis() {
+        System.out.println("Homo Neanderthalensis is a parallel evolution branch of humans.");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void printHomoSapiens() {
+        System.out.println("Homo Sapiens is a biological name of modern humans.");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void printHomoErectus() {
+        System.out.println("Homo Erectus is most likely the ancestor of modern humans.");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void printSapphire() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+
+    public void phoneDescription() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void foo() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void boo() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+        // A lot of code can be inside methods :)
+    }
+
+    public void animal() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void parrot() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void plain() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+
+    public void air() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void aim() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void book() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void bank() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void boring() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void car() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void cancel() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void zoo() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void zero() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void first() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void second() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void direction() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+    public void director() {
+        System.out.println("Just another method to illustrate fast file structure search :)");
+    }
+
+
+    public static class Internal {
+        public void anotherMethod1() {
+            System.out.println("Just another method to illustrate fast file structure search :)");
+        }
+
+        public void anotherMethod2() {
+            System.out.println("Just another method to illustrate fast file structure search :)");
+        }
+
+        public void homoHistory() {
+            System.out.println("Just another method to illustrate fast file structure search :)");
+        }
+    }
+}
diff --git a/ide-features-trainer/src/training/learn/lesson/java/navigation/JavaFileStructureLesson.kt b/ide-features-trainer/src/training/learn/lesson/java/navigation/JavaFileStructureLesson.kt
new file mode 100644 (file)
index 0000000..3433cf6
--- /dev/null
@@ -0,0 +1,12 @@
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package training.learn.lesson.java.navigation
+
+import training.learn.interfaces.Module
+import training.learn.lesson.general.navigation.FileStructureLesson
+
+class JavaFileStructureLesson(module: Module) : FileStructureLesson(module, "JAVA") {
+  override val searchSubstring: String = "hosa"
+  override val firstWord: String = "homo"
+  override val secondWord: String = "sapience"
+  override val existedFile: String = "src/FileStructureDemo.java"
+}