2012-05-15 5 views
0

Je veux désactiver le bouton agrandir/réduire, au-dessous, je posterai image pour expliquerDésactiver la fenêtre redimensionne sur JFace wizardpage

enter image description here

voici mon code:

public class ProjectWizardPageOne extends WizardPage { 

private String platform; 

public ProjectWizardPageOne(String title) { 
    super(title); 
    this.setTitle(title); 
    this.setMessage("Configure Project Name and Location"); 
} 

@Override 
public void createControl(Composite parent) { 
    Composite container = new Composite(parent,SWT.NONE); 
    setPageComplete(false); 
    setControl(container); 

    Canvas leftPanel = new Canvas(container, SWT.NONE); 
    leftPanel.setBackgroundImage(new Image(leftPanel.getDisplay(), this 
      .getClass().getClassLoader() 
      .getResourceAsStream("/icons/mypicture.png"))); 
    leftPanel.setBounds(0, 0, 183, 282); 

    Composite rightContainer = new Composite(container, SWT.NONE); 
    rightContainer.setBackground(new Color(null, 255, 255, 255)); 
    rightContainer.setBounds(181, 0, 399, 282); 
} 

public String getPlatform() { 
    return platform; 
} 

public void setPlatform(String platform) { 
    this.platform = platform; 
} 
} 

J'ai essayé de obtenir le Shell Composite comme ceci "container.getShell();" mais je ne comprends pas Comment je peux définir ces paramètres "SWT.SHELL_TRIM | SWT.TOOL"! Merci

Répondre

1

Est-ce un fichier -> Nouvel assistant ou un assistant personnalisé qui est lancé par programme. Si c'est personnalisé, vous devrez créer WizardDialog et lui passer l'instance de l'assistant. Lors de la création de WizardDialog, vous devez également créer Shell, pour lequel vous pouvez envoyer l'argument sans SWT.RESIZE. Pour Fichier -> Nouveau, puisque la boîte de dialogue n'est pas créée par vous, je ne pense pas que vous pouvez contrôler l'option de redimensionnement là. Le redimensionnement ne peut être passé que dans le constructeur de Shell.

+0

Merci pour votre replay. L'assistant est personnalisé. Comme vous le voyez de mon code, je l'ai créé 'ProjectWizardPageOne' et j'appeler cette classe d'ici' NewMyProjectWizard public class Assistant implémente INewWizard {ProjectWizardPageOne projectWizardPageOne; public NewMyProjectWizard() {super(); setNeedsProgressMonitor (true); } Public void init ... performFinish public boolean ... addPages public void() {projectWizardPageOne = new ProjectWizardPageOne ("Nouveau Mon Projet"); addPage (projectWizardPageOne); }} 'Je n'utilise pas WizardDialog. – ImLearning

+0

Comment votre assistant est lancé? – Ravi

+0

Assistant est lancé par plugin.xml ' <- CATÉGORIE ROOT -> \t ' – ImLearning

1

Dans le cas des boîtes de dialogue, j'ai remarqué que je dois spécifier explicitement que j'ai besoin de boutons min, max dans le coin supérieur droit. Pour que je dois appeler la méthode ci-dessous dans un constructeur:

setShellStyle(getShellStyle() | SWT.MAX | SWT.MIN | SWT.RESIZE); 

Depuis Assistant est également une boîte de dialogue, je peux appeler la méthode ci-dessus pour réinitialiser le shellStyle de ne pas inclure max, min, et d'autres boutons (voir ci-dessus code). L'assistant par défaut pourrait ajouter ces boutons. Mais je pense que vous pouvez remplacer cela en rappelant à la fin de la création de l'assistant. J'espère que cela t'aides.

+0

Salut Aslam merci pour la relecture. Où dois-je mettre votre code? – ImLearning

2

Contrôler le Window/Shell n'est pas la responsabilité d'un WizardPage, il ne peut pas faire cela. C'est la responsabilité du WizardDialog ou du code qui le crée. En fait, il n'y a aucune garantie qu'un Wizard et ses WizardPage seront contenus dans un WizardDialog; tout peut implémenter l'interface IWizardContainer pour présenter les assistants d'une manière différente.

+0

Merci pour votre réponse, ci-dessous le code qui crée la page Assistant. 'public class NewMyProjectWizard extends Wizard implémente INewWizard { \t ProjectWizardPageOne projectWizardPageOne; \t public NewMyProjectWizard() { \t \t super(); \t \t setNeedsProgressMonitor (true); Public void init ... \t public boolean performFinish ... \t public void addPages() { \t \t projectWizardPageOne = nouveau ProjectWizardPageOne ("Nouveau Mon Projet"); \t \t addPage (projectWizardPageOne); \t}} ' Pouvez-vous me dire où je dois modifier pour obtenir mon objectif? merci beaucoup – ImLearning

1
public class InstallerWizard extends Wizard{ 
... 
main() 
{ 
WizardDialog dialog = new DisableMax(shell, new InstallerWizard()); 
dialog.open(); 
} 

} public class DisableMax étend WizardDialog {

public DisableMax(Shell parentShell, IWizard newWizard) { 
     super(parentShell, newWizard); 
     setShellStyle(SWT.CLOSE | SWT.MIN | SWT.RESIZE | getDefaultOrientation()); 
    } 
} 
Questions connexes