vsd.show();
vsd.setVisible(true);
    private void fire() {        // get the selected weaponnum        int weaponNum = clientgui.mechD.wPan.getSelectedWeaponNum();        Mounted mounted = ce().getEquipment(weaponNum);                // validate        if (ce() == null || target == null || mounted == null         || !(mounted.getType() instanceof WeaponType)) {            throw new IllegalArgumentException("current fire parameters are invalid"); //$NON-NLS-1$        }                // declare searchlight, if possible        if(GUIPreferences.getInstance().getAutoDeclareSearchlight()) {            doSearchlight();        }        WeaponAttackAction waa = new WeaponAttackAction(cen, target.getTargetType(),                 target.getTargetId(), weaponNum);        if ( null != mounted.getLinked() &&              ((WeaponType)mounted.getType()).getAmmoType() != AmmoType.T_NA ) {            Mounted ammoMount = mounted.getLinked();            AmmoType ammoType = (AmmoType)ammoMount.getType();            waa.setAmmoId(ce().getEquipmentNum(ammoMount));            if ( ((ammoType.getMunitionType() == AmmoType.M_THUNDER_VIBRABOMB)                && (ammoType.getAmmoType() == AmmoType.T_LRM))                 || ammoType.getMunitionType() == AmmoType.M_VIBRABOMB_IV)                             {                VibrabombSettingDialog vsd  =                    new VibrabombSettingDialog( clientgui.frame );                vsd.show();                waa.setOtherAttackInfo(vsd.getSetting());            }        }        if (ash.allowAimedShotWith(mounted) &&            ash.inAimingMode() &&             ash.isAimingAtLocation()) {            waa.setAimedLocation(ash.getAimingAt());            waa.setAimingMode(ash.getAimingMode());            if (ash.getAimingMode() == IAimingModes.AIM_MODE_TARG_COMP) {                ash.lockLocation(true);            }        } else {            waa.setAimedLocation(Entity.LOC_NONE);            waa.setAimingMode(IAimingModes.AIM_MODE_NONE);        }        // add the attack to our temporary queue        attacks.addElement(waa);        // and add it into the game, temporarily        client.game.addAction(waa);        clientgui.bv.addAttack(waa);        clientgui.bv.repaint(100);        clientgui.minimap.drawMap();                // set the weapon as used        mounted.setUsedThisRound(true);                // find the next available weapon         int nextWeapon = ce().getNextWeapon(weaponNum);                // check; if there are no ready weapons, you're done.        if (nextWeapon == -1 && GUIPreferences.getInstance().getAutoEndFiring()) {            ready();            return;        }                // otherwise, display firing info for the next weapon        clientgui.mechD.wPan.displayMech(ce());        clientgui.mechD.wPan.selectWeapon(nextWeapon);        updateTarget();            }