Differenze tra le versioni di "Programmazione:Java/Eclipse RCP/Disattivare il ridimensionamento delle viste"

Da WikiSitech.
Vai alla navigazioneVai alla ricerca
 
(7 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 +
[[Programmazione:Java/Eclipse_RCP|<< Back to Eclipse RCP]]
 +
 
=Disattivare il ridimensionamento delle viste=
 
=Disattivare il ridimensionamento delle viste=
 
Per disattivare il ridimensionamento delle viste, come si può intuire, è fattibile solo infilandosi in mezzo al codice internal di eclipse
 
Per disattivare il ridimensionamento delle viste, come si può intuire, è fattibile solo infilandosi in mezzo al codice internal di eclipse
  
<code java>
+
<syntaxhighlight lang="java">
import org.eclipse.swt.widgets.Shell;
 
 
import org.eclipse.ui.IPerspectiveDescriptor;
 
import org.eclipse.ui.IPerspectiveDescriptor;
 
import org.eclipse.ui.IPerspectiveListener;
 
import org.eclipse.ui.IPerspectiveListener;
Riga 13: Riga 14:
 
@SuppressWarnings("restriction")
 
@SuppressWarnings("restriction")
 
public class PerspectiveManager {
 
public class PerspectiveManager {
private String currentPerspective = "";
+
  private PerspectiveManager(IWorkbenchWindow w) {
 +
      w.addPerspectiveListener(new IPerspectiveListener() {
 +
        public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
 +
            ((WorkbenchPage) page).getPerspectivePresentation().getLayout().disposeSashes();
 +
        } 
  
private PerspectiveManager(IWorkbenchWindow w) {
+
        public void perspectiveChanged(IWorkbenchPage arg0, IPerspectiveDescriptor arg1, String arg2) {
w.addPerspectiveListener(new IPerspectiveListener() {
+
        }
public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
+
      });
if (PlatformUI.getWorkbench().getDisplay().getActiveShell() != null) {
+
  }
PlatformUI.getWorkbench().getDisplay().getActiveShell().setImage(perspective.getImageDescriptor().createImage());
+
}
PlatformUI.getWorkbench().getDisplay().getActiveShell().setText(perspective.getLabel());
+
</syntaxhighlight>
} else {
 
Shell[] shells = PlatformUI.getWorkbench().getDisplay().getShells();
 
if (shells.length > 0) {
 
shells[shells.length - 1].setImage(perspective.getImageDescriptor().createImage());
 
shells[shells.length - 1].setText(perspective.getLabel());
 
}
 
}
 
if (!currentPerspective.equals(perspective.getId())) {
 
currentPerspective = perspective.getId();
 
TopRenderRegistry tr_reg = TopRenderRegistry.getInstance();
 
BaseApplicationWorkbenchWindowAdvisor.changeTop(tr_reg.getRender(perspective.getId()));
 
BaseApplicationWorkbenchWindowAdvisor.extendPerspective(perspective.getId());
 
}
 
PerspectiveExtensionRegistry pe_reg = PerspectiveExtensionRegistry.getInstance();
 
PerspectiveExtension pe = pe_reg.getRender(currentPerspective);
 
if (pe.fixView) {
 
((WorkbenchPage) page).getPerspectivePresentation().getLayout().disposeSashes();
 
}
 
}
 
 
 
public void perspectiveChanged(IWorkbenchPage arg0, IPerspectiveDescriptor arg1, String arg2) {
 
}
 
});
 
}
 
 
 
private static PerspectiveManager self;
 
  
public static void initialize(IWorkbenchWindow w) {
+
Nota: questo pezzo di codice viene invalidato se viene ridisegnato per qualche motivo il layout della perspective (per esempio massimizzando e riportando alle dimensioni normali una vista)
if (self == null) {
 
self = new PerspectiveManager(w);
 
}
 
}
 
 
 
public static PerspectiveManager getInstance(IWorkbenchWindow w) {
 
if (self == null) {
 
self = new PerspectiveManager(w);
 
}
 
return self;
 
}
 
}
 
</code>
 

Versione attuale delle 10:48, 21 dic 2016

<< Back to Eclipse RCP

Disattivare il ridimensionamento delle viste

Per disattivare il ridimensionamento delle viste, come si può intuire, è fattibile solo infilandosi in mezzo al codice internal di eclipse

import org.eclipse.ui.IPerspectiveDescriptor;
import org.eclipse.ui.IPerspectiveListener;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.internal.WorkbenchPage;

@SuppressWarnings("restriction")
public class PerspectiveManager {
   private PerspectiveManager(IWorkbenchWindow w) {
      w.addPerspectiveListener(new IPerspectiveListener() {
         public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) {
            ((WorkbenchPage) page).getPerspectivePresentation().getLayout().disposeSashes();
         }   

         public void perspectiveChanged(IWorkbenchPage arg0, IPerspectiveDescriptor arg1, String arg2) {
         }
      });
   }
}

Nota: questo pezzo di codice viene invalidato se viene ridisegnato per qualche motivo il layout della perspective (per esempio massimizzando e riportando alle dimensioni normali una vista)