Example #1
0
 private void doCreate(final PsiDirectory baseDirectory, PsiElement myContext) {
   final PsiManager manager = baseDirectory.getManager();
   PsiDirectory directory = baseDirectory;
   String lastName;
   for (StringTokenizer st = new StringTokenizer(myRedPart, "."); ; ) {
     lastName = st.nextToken();
     if (st.hasMoreTokens()) {
       try {
         final PsiDirectory subdirectory = directory.findSubdirectory(lastName);
         directory = subdirectory != null ? subdirectory : directory.createSubdirectory(lastName);
       } catch (IncorrectOperationException e) {
         CreateFromUsageUtils.scheduleFileOrPackageCreationFailedMessageBox(
             e, lastName, directory, true);
         return;
       }
     } else {
       break;
     }
   }
   if (myClassKind != null) {
     PsiClass createdClass;
     if (myTemplateName != null) {
       createdClass =
           CreateClassUtil.createClassFromCustomTemplate(
               directory, null, lastName, myTemplateName);
     } else {
       createdClass =
           CreateFromUsageUtils.createClass(
               myClassKind == ClassKind.INTERFACE
                   ? CreateClassKind.INTERFACE
                   : CreateClassKind.CLASS,
               directory,
               lastName,
               manager,
               myContext,
               null,
               mySuperClass);
     }
     if (createdClass != null) {
       createdClass.navigate(true);
     }
   } else {
     try {
       directory.createSubdirectory(lastName);
     } catch (IncorrectOperationException e) {
       CreateFromUsageUtils.scheduleFileOrPackageCreationFailedMessageBox(
           e, lastName, directory, true);
     }
   }
 }