public boolean tabCloseSelected( boolean force ) { // this gets called on by the file-close menu item String activePerspectiveId = SpoonPerspectiveManager.getInstance().getActivePerspective().getId(); boolean etlPerspective = activePerspectiveId.equals( MainSpoonPerspective.ID ); if ( etlPerspective || EngineMetaUtils.isJobOrTransformation( getActiveMeta() ) ) { return tabClose( tabfolder.getSelected(), force ); } // hack to make the plugins see file-close commands // this should be resolved properly when resolving PDI-6054 // maybe by extending the SpoonPerspectiveInterface to register event handlers from Spoon? try { SpoonPerspective activePerspective = SpoonPerspectiveManager.getInstance().getActivePerspective(); Class<? extends SpoonPerspective> cls = activePerspective.getClass(); Method m = cls.getMethod( "onFileClose" ); return (Boolean) m.invoke( activePerspective ); } catch ( Exception e ) { // ignore any errors resulting from the hack // e.printStackTrace(); } return false; }