2016-10-20 145 views
0

我有一個帶有一些不同MParts的Eclipse E4應用程序。現在,當我通過雙擊它的選項卡來最大化MPart時,我得到了ClassCastException。另外,當我再次將其最小化時,也會拋出相同的異常。我看着這個錯誤,但是在我的源代碼中找不到可以拋出異常的地方。有人可以幫我弄這個嗎?在下面你可以找到錯誤的完整堆棧跟蹤。java.lang.ClassCastException when mpart

java.lang.ClassCastException: org.eclipse.swt.layout.GridData cannot be cast to org.eclipse.swt.layout.FillData 
    at org.eclipse.swt.layout.FillLayout.computeChildSize(FillLayout.java:145) 
    at org.eclipse.swt.layout.FillLayout.computeSize(FillLayout.java:123) 
    at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:238) 
    at org.eclipse.swt.widgets.Control.computeSize(Control.java:663) 
    at org.eclipse.ui.forms.widgets.LayoutComposite.computeSize(LayoutComposite.java:37) 
    at org.eclipse.ui.forms.widgets.SizeCache.controlComputeSize(SizeCache.java:391) 
    at org.eclipse.ui.forms.widgets.SizeCache.computeMinimumWidth(SizeCache.java:430) 
    at org.eclipse.ui.forms.widgets.SizeCache.computeSize(SizeCache.java:189) 
    at org.eclipse.ui.forms.widgets.ExpandableComposite$ExpandableLayout.computeSize(ExpandableComposite.java:476) 
    at org.eclipse.ui.forms.widgets.ExpandableComposite.computeSize(ExpandableComposite.java:964) 
    at org.eclipse.swt.layout.FillData.computeSize(FillData.java:26) 
    at org.eclipse.swt.layout.FillLayout.computeChildSize(FillLayout.java:152) 
    at org.eclipse.swt.layout.FillLayout.computeSize(FillLayout.java:123) 
    at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:238) 
    at org.eclipse.swt.widgets.Control.computeSize(Control.java:663) 
    at org.eclipse.swt.layout.FillData.computeSize(FillData.java:26) 
    at org.eclipse.swt.layout.FillLayout.computeChildSize(FillLayout.java:152) 
    at org.eclipse.swt.layout.FillLayout.computeSize(FillLayout.java:123) 
    at org.eclipse.swt.widgets.Composite.computeSizeInPixels(Composite.java:238) 
    at org.eclipse.swt.widgets.Control.computeSize(Control.java:663) 
    at org.eclipse.ui.forms.widgets.LayoutComposite.computeSize(LayoutComposite.java:37) 
    at org.eclipse.ui.forms.widgets.SizeCache.controlComputeSize(SizeCache.java:391) 
    at org.eclipse.ui.forms.widgets.SizeCache.computeMinimumWidth(SizeCache.java:430) 
    at org.eclipse.ui.forms.widgets.SizeCache.computeSize(SizeCache.java:189) 
    at org.eclipse.ui.forms.widgets.Form$FormLayout.computeSize(Form.java:143) 
    at org.eclipse.ui.forms.widgets.Form.computeSize(Form.java:200) 
    at org.eclipse.ui.forms.widgets.SizeCache.controlComputeSize(SizeCache.java:391) 
    at org.eclipse.ui.forms.widgets.SizeCache.computeSize(SizeCache.java:270) 
    at org.eclipse.ui.forms.widgets.SharedScrolledComposite.reflow(SharedScrolledComposite.java:188) 
    at org.eclipse.ui.forms.widgets.SharedScrolledComposite.scheduleReflow(SharedScrolledComposite.java:237) 
    at org.eclipse.ui.forms.widgets.SharedScrolledComposite.access$1(SharedScrolledComposite.java:221) 
    at org.eclipse.ui.forms.widgets.SharedScrolledComposite$1.handleEvent(SharedScrolledComposite.java:68) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4410) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1084) 
    at org.eclipse.swt.widgets.Control.WM_SIZE(Control.java:5459) 
    at org.eclipse.swt.widgets.Scrollable.WM_SIZE(Scrollable.java:367) 
    at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1783) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4866) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547) 
    at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) 
    at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5691) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4879) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102) 
    at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) 
    at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1482) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3251) 
    at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1099) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3212) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3208) 
    at org.eclipse.swt.widgets.Control.setBounds(Control.java:3203) 
    at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:219) 
    at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1383) 
    at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1794) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4866) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547) 
    at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) 
    at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5691) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4879) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5115) 
    at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) 
    at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1482) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3251) 
    at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1099) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3212) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3208) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3284) 
    at org.eclipse.swt.widgets.Control.setBounds(Control.java:3280) 
    at org.eclipse.swt.custom.CTabFolderLayout.layout(CTabFolderLayout.java:116) 
    at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1383) 
    at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1794) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4866) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547) 
    at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) 
    at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5691) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4879) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5115) 
    at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) 
    at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:1027) 
    at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:993) 
    at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:1207) 
    at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1798) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4866) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547) 
    at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) 
    at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5691) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4879) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102) 
    at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) 
    at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1482) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3251) 
    at org.eclipse.swt.widgets.Composite.setBoundsInPixels(Composite.java:1099) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3212) 
    at org.eclipse.swt.widgets.Control.setBoundsInPixels(Control.java:3208) 
    at org.eclipse.swt.widgets.Control.setBounds(Control.java:3203) 
    at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:204) 
    at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1383) 
    at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1794) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4866) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) 
    at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547) 
    at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) 
    at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5691) 
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4879) 
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5115) 
    at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) 
    at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:1027) 
    at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:993) 
    at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:1207) 
    at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1384) 
    at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1368) 
    at org.eclipse.swt.widgets.Composite.setLayoutDeferred(Composite.java:1167) 
    at org.eclipse.swt.widgets.Display.runDeferredLayouts(Display.java:4252) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3809) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022) 
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150) 
    at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:161) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1519) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1492) 

我的類,將渲染屏幕:

公共類UsersScreen擴展MainPart {

/** 
    * Table with all the users 
    */ 
    private CustomNatTable<PlatformUser> userTable; 

    /** 
    * Table with all the different roles 
    */ 
    private CustomNatTable<RoleCompanyViewModel> roleTable; 

    /** 
    * @see org.eclipse.e4.ui.workbench.modeling.EPartService 
    */ 
    private EPartService partService; 

    /** 
    * Part of this part 
    */ 
    private MPart part; 

    /** 
    * List of all the roleCompany view models 
    */ 
    private ArrayList<RoleCompanyViewModel> roleData = new ArrayList<>(); 

    /** 
    * List of all the userroles 
    */ 
    private ArrayList<UserRole> allUserRoles; 

    /** 
    * UserPermissionRepository repository to search for the user permissions 
    */ 
    private UserPermissionRepository userPermissionrepo; 

    /** 
    * Parent composite of the userTable 
    */ 
    private Composite userComposite; 

    /** 
    * Parent composite of the roleTable 
    */ 
    private Composite roleComposite; 

    private IEclipseContext context; 

    /** 
    * Creates the components and place it on the screen 
    * 
    * @param parent 
    *   Parent composite where the components need to be write on 
    * @param application 
    * @see org.eclipse.e4.ui.model.application.MApplication 
    * @param service 
    * @see org.eclipse.e4.ui.workbench.modeling.EModelService 
    * @param partService 
    * @see org.eclipse.e4.ui.workbench.modeling.EPartService 
    * @param context 
    * @see org.eclipse.e4.core.contexts.IEclipseContext 
    * @param currentPart 
    *   MPart of the UserScreen 
    */ 
    @PostConstruct 
    public void createComposite(Composite parent, MApplication application, EModelService service, 
      EPartService partService, final IEclipseContext context, MPart currentPart) { 

     this.userPermissionrepo = new RepositoryManager<UserPermissionRepository>() 
       .getRepository(UserPermissionRepository.class.getSimpleName()); 

     this.application = application; 
     this.service = service; 
     this.partService = partService; 
     this.part = currentPart; 
     this.context = context; 

     FormToolkit toolkit = new FormToolkit(parent.getDisplay()); 
     ScrolledForm form = toolkit.createScrolledForm(parent); 
     form.setText("User Management"); 
     Composite body = form.getBody(); 
     toolkit.decorateFormHeading(form.getForm()); 
     toolkit.paintBordersFor(body); 
     form.getBody().setLayout(new FillLayout(SWT.HORIZONTAL)); 

     Composite container = new Composite(body, SWT.NONE); 
     container.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); 
     container.setLayout(new FillLayout()); 

     Section userSection = toolkit.createSection(container, Section.TITLE_BAR); 
     //userSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1)); 
     toolkit.paintBordersFor(userSection); 
     userSection.setText("Users"); 

     Section roleSection = toolkit.createSection(container, Section.TITLE_BAR); 
     //roleSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 2)); 
     toolkit.paintBordersFor(roleSection); 
     roleSection.setText("Roles"); 

     userComposite = toolkit.createComposite(userSection); 
     roleComposite = toolkit.createComposite(roleSection); 

     userComposite.setLayout(new FillLayout()); 
     roleComposite.setLayout(new FillLayout()); 

     userSection.setClient(userComposite); 
     roleSection.setClient(roleComposite); 

     showToolItems(); 

     createUserTable(userComposite, context); 

     createRoleTable(roleComposite, context); 
    } 

    /** 
    * Creates the role table on the parent composite 
    * 
    * @param roleTableComposite 
    *   Composite where the table must be on 
    * @param context 
    * @see org.eclipse.e4.core.contexts.IEclipseContext 
    */ 
    private void createRoleTable(Composite roleTableComposite, final IEclipseContext context) { 

     ArrayList<NATColumnDefinition> roleDefinitions = new ArrayList<>(); 

     NATColumnDefinition assigned = new NATColumnDefinition("on"); 
     assigned.setLabel("Assigned"); 
     assigned.setAligment(Alignment.COLUMN_CENTER_LABEL); 
     assigned.setColumnWidth(60); 
     assigned.setData(NATColumnDefinition.DataType.BOOLEAN_COLUMN_LABEL); 

     if (!connectionClosed && userPermissionrepo.containsPermission("AssignRole")) { 
      assigned.setEditor(NATColumnDefinition.EditorType.BOOLEAN_EDITOR_COLUMN_LABEL); 
     } 

     NATColumnDefinition roleName = new NATColumnDefinition("name"); 
     roleName.setLabel("Name"); 
     roleName.setAligment(Alignment.COLUMN_CENTER_LABEL); 
     roleName.setColumnWidth(120); 

     NATColumnDefinition description = new NATColumnDefinition("description"); 
     description.setLabel("Description"); 
     description.setAligment(Alignment.COLUMN_CENTER_LABEL); 
     description.setColumnWidth(240); 

     roleDefinitions.add(assigned); 
     roleDefinitions.add(roleName); 
     roleDefinitions.add(description); 

     roleTable = new CustomNatTable<>(roleDefinitions, roleTableComposite); 
     roleTableComposite.setLayout(new FillLayout(SWT.HORIZONTAL)); 

     roleTable.showFilterRow(true); 
     roleTable.setSortEnabled(true); 
     roleTable.showHeaderGroups(false); 
     roleTable.showHeaderGroupGroups(false); 
     roleTable.expandTree(true); 

     roleTable.treeFormat(new TreeFormat<RoleCompanyViewModel>(new Comparator<RoleCompanyViewModel>() { 

      @Override 
      public int compare(RoleCompanyViewModel obj1, RoleCompanyViewModel obj2) { 

       if (obj1.getCompanyId() != null && obj2.getCompanyId() != null) { 
        return obj1.getCompanyId().compareTo(obj2.getCompanyId()); 
       } 
       return 0; 
      } 
     })); 

     roleTable.generate(); 

     roleTable.addMoficationListener(new IModificationListener<RoleCompanyViewModel>() { 

      @Override 
      public void objectModified(RoleCompanyViewModel changedObject, RoleCompanyViewModel originalObject) { 

       PlatformUser user = userTable.getSelectedItem(); 

       if (changedObject.getChildren().size() > 0) { 
        ArrayList<RoleCompanyViewModel> userRoles = (ArrayList<RoleCompanyViewModel>) changedObject 
          .getChildren(); 

        for (RoleCompanyViewModel viewModel : userRoles) { 
         UserRole role = new UserRole(); 
         role.setPlatformUser(user); 
         role.setCompany(viewModel.getCompanyObject()); 
         role.setRole(viewModel.getRoleObject()); 

         if (viewModel.isOn()) { 
          SendInsertHandler<UserRole> handler = new SendInsertHandler<>(); 
          handler.execute(role, context, UserRole.class.getSimpleName(), "UserManagement", part); 
         } else { 
          SendRemoveHandle<UserRole> handler = new SendRemoveHandle<>(); 
          handler.execute(role, context, UserRole.class.getSimpleName(), "UserManagement", part); 
         } 
        } 
       } else { 
        UserRole role = new UserRole(); 
        role.setPlatformUser(user); 
        role.setCompany(changedObject.getCompanyObject()); 
        role.setRole(changedObject.getRoleObject()); 

        if (changedObject.isOn()) { 
         SendInsertHandler<UserRole> handler = new SendInsertHandler<>(); 
         handler.execute(role, context, UserRole.class.getSimpleName(), "UserManagement", part); 
        } else { 
         SendRemoveHandle<UserRole> handler = new SendRemoveHandle<>(); 
         handler.execute(role, context, UserRole.class.getSimpleName(), "UserManagement", part); 
        } 
       } 
      } 
     }); 

     updateRoleTable(null, null); 

    } 

    /** 
    * Creates the user table on the parent composite 
    * 
    * @param userTableComposite 
    *   Composite where the table must be on 
    * @param context 
    * @see org.eclipse.e4.core.contexts.IEclipseContext 
    */ 
    private void createUserTable(Composite userTableComposite, final IEclipseContext context) { 
     ArrayList<NATColumnDefinition> userColumnDefinitions = new ArrayList<>(); 

     NATColumnDefinition userName = new NATColumnDefinition("userName"); 
     userName.setLabel("User name"); 
     userName.setAligment(Alignment.COLUMN_CENTER_LABEL); 
     userName.setColumnWidth(120); 

     NATColumnDefinition firstName = new NATColumnDefinition("firstName"); 
     firstName.setLabel("First name"); 
     firstName.setAligment(Alignment.COLUMN_CENTER_LABEL); 
     firstName.setColumnWidth(120); 

     NATColumnDefinition lastName = new NATColumnDefinition("lastName"); 
     lastName.setLabel("Last name"); 
     lastName.setAligment(Alignment.COLUMN_CENTER_LABEL); 
     lastName.setColumnWidth(120); 

     NATColumnDefinition domain = new NATColumnDefinition("domain"); 
     domain.setLabel("Domain"); 
     domain.setAligment(Alignment.COLUMN_CENTER_LABEL); 
     domain.setColumnWidth(60); 

     NATColumnDefinition active = new NATColumnDefinition("active"); 
     active.setLabel("Active"); 
     active.setAligment(Alignment.COLUMN_CENTER_LABEL); 
     active.setColumnWidth(60); 
     active.setDataType(NATColumnDefinition.DataType.BOOLEAN_COLUMN_LABEL); 

     if (!connectionClosed && userPermissionrepo.containsPermission("DeactivateUser")) { 
      active.setEditor(NATColumnDefinition.EditorType.BOOLEAN_EDITOR_COLUMN_LABEL); 
     } 

     if (!connectionClosed && userPermissionrepo.containsPermission("EditUser")) { 
      firstName.setEditor(NATColumnDefinition.EditorType.TEXT_EDITOR_COLUMN_LABEL); 
      lastName.setEditor(NATColumnDefinition.EditorType.TEXT_EDITOR_COLUMN_LABEL); 
     } 

     userColumnDefinitions.add(userName); 
     userColumnDefinitions.add(firstName); 
     userColumnDefinitions.add(lastName); 
     userColumnDefinitions.add(domain); 
     userColumnDefinitions.add(active); 

     userTable = new CustomNatTable<>(userColumnDefinitions, userTableComposite); 
     // userTableComposite.setLayout(new FillLayout(SWT.HORIZONTAL)); 

     userTable.showFilterRow(true); 
     userTable.setSortEnabled(true); 
     userTable.showHeaderGroups(false); 
     userTable.showHeaderGroupGroups(false); 
     userTable.generate(); 

     userTable.addSelectionListener(new SelectionListener<PlatformUser>() { 

      @Override 
      public void itemSelected(PlatformUser item) { 

       checkSelection(item); 
       roleTable.refresh(false); 

      } 

      @Override 
      public void gridSelectionChanged(GridSelection selection) { 

      } 
     }); 
     userTable.addMoficationListener(new IModificationListener<PlatformUser>() { 

      @Override 
      public void objectModified(PlatformUser changedObject, PlatformUser originalObject) { 
       SendUpdateHandler<PlatformUser> handler = new SendUpdateHandler<>(); 

       handler.execute(changedObject, originalObject, context, changedObject.getClass().getSimpleName(), 
         "UserManagement", partService.getActivePart()); 
      } 
     }); 

     userDataChanged(null); 
    } 

    /** 
    * Handles the close action from the window 
    */ 
    @PreDestroy 
    public void windowClose() { 

     CloseScreenHandler handler = new CloseScreenHandler(); 
     handler.execute("UserManagement", part); 

     MDirectToolItem addUser = getToolItem(application, service, "addUserToolItem"); 
     addUser.setToBeRendered(false); 
     addUser.setVisible(false); 
    } 

    /** 
    * Will be called when some data has been changed in the RoleRepository 
    * 
    * @param repo 
    *   Platform user repository 
    */ 
    @Inject 
    @Optional 
    public void roleDataChanged(@UIEventTopic("RoleRepository") RoleRepository repo) { 

     updateRoleTable(repo, null); 
    } 

    /** 
    * Will be called when some data has been changed in the 
    * PlatformUserRepository 
    * 
    * @param data 
    *   Platform user repository 
    */ 
    @Inject 
    @Optional 
    public void userDataChanged(@UIEventTopic("PlatformUserRepository") PlatformUserRepository data) { 

     if(data == null) 
     { 
      RepositoryManager<PlatformUserRepository> manager = new RepositoryManager<PlatformUserRepository>(); 

      data = manager.getRepository(PlatformUserRepository.class.getSimpleName()); 

     } 
     userTable.setItems(data.getAllData()); 
     userTable.refresh(true); 
    } 

    /** 
    * Will be called when some data has been changed in the CompanyRepository. 
    * 
    * @param repo 
    *   Company repository 
    */ 
    @Inject 
    @Optional 
    public void companyDataChanged(@UIEventTopic("CompanyRepository") CompanyRepository repo) { 
     updateRoleTable(null, repo); 
    } 

    /** 
    * Handles the change of UserRoleRepository object 
    * 
    * @param repo 
    *   UserRoleRepository object that has been changed 
    */ 
    @Inject 
    @Optional 
    public void userRolDataChanged(@UIEventTopic("UserRoleRepository") UserRoleRepository repo) { 
     allUserRoles = repo.getAllData(); 

     PlatformUser selectedUser = userTable.getSelectedItem(); 
     if(selectedUser != null) 
     { 
      checkSelection(selectedUser); 
      roleTable.refresh(false); 
     } 
    } 

} 
+0

可能是你的'Section'中的某個東西,但是這裏有太多的代碼和太多的缺失類。 –

回答

0

我發現這個問題。一些舊的代碼仍然在我的課堂上繪製一個Nattable。代碼是一個將表放置在網格上的GridFactory。刪除這一行解決了我的問題。