protected void SaveChages() {
   Language LanguageActual = ActualState.getActualLanguage();
   String SeleccionCatalogoPopupPanelLanguageConfiguration = toFile();
   LanguageActual.setSeleccionCatalogoPopupPanelLanguageConfiguration(
       SeleccionCatalogoPopupPanelLanguageConfiguration);
   ActualState.saveLanguageActual(LanguageActual);
 }
  @Override
  public void show() {
    super.show();
    //		GeneralPanel.setSize(400+Constants.PX, 40+Constants.PX);
    EditorZone.setVisible(false);
    GeneralPanel.setSize(
        PanelActivity.getOffsetWidth() + Constants.PX,
        PanelActivity.getOffsetHeight() + Constants.PX);

    if (ActualState.isLanguageActive()) {
      GeneralPanel.setHeight(Constants.TAMANO_PANEL_EDICION_INT + 40 + Constants.PX);
      EditorZone.setVisible(true);
      closeEditPanel();
    }
  }
 public static void FromFile(String Entrada) {
   if (Entrada.length() == 0) ParsearFieldsAItemsRESET();
   else {
     String[] Lista = Entrada.split("\r\n");
     if (Lista.length >= NCampos) {
       if (!Lista[0].isEmpty()) BOTTON_TEACHER_CATALOG = Lista[0];
       else BOTTON_TEACHER_CATALOG = BOTTON_TEACHER_CATALOG_RESET;
       if (!Lista[1].isEmpty()) BOTTON_OPEN_CATALOG = Lista[1];
       else BOTTON_OPEN_CATALOG = BOTTON_OPEN_CATALOG_RESET;
     } else
       Logger.GetLogger()
           .severe(
               SeleccionCatalogoPopupPanel.class.toString(),
               ActualState.getUser().toString(),
               ConstantsError.ERROR_LOADING_LANGUAGE_IN + SelectionCatalogPopupPanel);
     ParsearFieldsAItemsRESET();
   }
 }
  /** @wbp.parser.constructor */
  public VisualBookPanel(AnnotationClient annotationin, Image imagein) {
    super(false);

    Yo = this;

    annotation = annotationin;
    image = imagein;
    DockPanel SP = new DockPanel();

    setHTML(
        ActualState.getReadingActivityBook().getTitle()
            + "    -    "
            + ActualState.getLanguage().getPage()
            + ": "
            + annotation.getPageNumber());

    setWidget(SP);

    setWidget(SP);

    MenuBar menuBar = new MenuBar(false);
    SP.add(menuBar, DockPanel.NORTH);

    MenuItem mntmNewItem =
        new MenuItem(
            "New item",
            false,
            new Command() {
              public void execute() {
                Yo.hide();
              }
            });
    mntmNewItem.setHTML(ActualState.getLanguage().getClose());
    menuBar.addItem(mntmNewItem);

    MenuItem mntmNewItem_1 =
        new MenuItem(
            "New item",
            false,
            new Command() {
              public void execute() {
                Yo.hide();
                MainEntryPoint.setCurrentPageNumber(annotation.getPageNumber());
                MainEntryPoint.setFiltro(
                    Browser.getFiltroResidual(),
                    new ArrayList<UserClient>(),
                    new ArrayList<String>(),
                    new ArrayList<Long>());
                Controlador.change2Reader();
              }
            });
    mntmNewItem_1.setHTML(ActualState.getLanguage().getGO_To_Page());
    menuBar.addItem(mntmNewItem_1);

    //		MenuItem mntmShowSelection = new MenuItem(ActualUser.getLanguage().getComment_Area(), false,
    // new Command() {
    //			public void execute() {
    //				SE=new ArrayList<SelectorPanel>();
    //				for (TextSelectorClient TS : annotation.getTextSelectors()) {
    //
    //					SelectorPanel SEE = new SelectorPanel(TS.getX().intValue(),
    //							TS.getY().intValue(),
    //			                image.getAbsoluteLeft(), image.getAbsoluteTop(),
    //			                TS.getWidth().intValue(),
    //			                TS.getHeight().intValue());
    //			        SEE.show();
    //			        SE.add(SEE);
    //				}
    //			}
    //		});
    //	menuBar.addItem(mntmShowSelection);

    SP.add(image, DockPanel.SOUTH);

    image.addLoadHandler(
        new LoadHandler() {
          public void onLoad(LoadEvent event) {
            Image I = (Image) event.getSource();
            float He = I.getHeight();
            float Wi = I.getWidth();
            float prop = He / 830;
            float Winew = (Wi / prop);
            image.setSize(Winew + "px", "830px");
            // Window.alert("Altura: " + He + "Ancho: " + Wi );
          }
        });
  }
  public FilterBasicPopUp() {
    super(true);
    setAnimationEnabled(true);
    AllBoolean = false;
    filtro = new ArrayList<TypeClient>();
    VerticalPanel verticalPanel = new VerticalPanel();
    setWidget(verticalPanel);
    verticalPanel.setSize("100%", "100%");

    SimplePanel simplePanel = new SimplePanel();
    verticalPanel.add(simplePanel);
    simplePanel.setSize("100%", "100%");

    if (textBox == null) textBox = new TextBox();
    textBox.setVisibleLength(100);
    simplePanel.setWidget(textBox);
    textBox.setSize("98%", "100%");
    Lang = ActualState.getLanguage();

    horizontalPanel = new HorizontalPanel();
    verticalPanel.add(horizontalPanel);

    Button btnNewButton = new Button(Lang.getFilterButton());
    horizontalPanel.add(btnNewButton);
    horizontalPanel.setCellHorizontalAlignment(btnNewButton, HasHorizontalAlignment.ALIGN_CENTER);

    All = new Button(Lang.getSelect_All());
    All.addClickHandler(
        new ClickHandler() {
          public void onClick(ClickEvent event) {
            AllBoolean = !AllBoolean;
            if (AllBoolean) {
              textBox.setEnabled(false);
              textBox.setReadOnly(true);
              textBox.setText(Lang.getAllSelected());

            } else {
              textBox.setEnabled(true);
              textBox.setReadOnly(false);
              textBox.setText("");
            }
          }
        });
    horizontalPanel.add(All);
    All.setSize("100%", "100%");
    All.setStyleName("gwt-ButtonCenter");
    All.addMouseOutHandler(
        new MouseOutHandler() {
          public void onMouseOut(MouseOutEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenter");
          }
        });
    All.addMouseOverHandler(
        new MouseOverHandler() {
          public void onMouseOver(MouseOverEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenterOver");
          }
        });
    All.addMouseDownHandler(
        new MouseDownHandler() {
          public void onMouseDown(MouseDownEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenterPush");
          }
        });

    Advance = new Button(Lang.getAdvance());
    Advance.addClickHandler(
        new ClickHandler() {
          public void onClick(ClickEvent event) {
            Controlador.change2FilterAdvance();
          }
        });
    Advance.setSize("100%", "100%");
    Advance.setStyleName("gwt-ButtonCenter");
    Advance.addMouseOutHandler(
        new MouseOutHandler() {
          public void onMouseOut(MouseOutEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenter");
          }
        });
    Advance.addMouseOverHandler(
        new MouseOverHandler() {
          public void onMouseOver(MouseOverEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenterOver");
          }
        });
    Advance.addMouseDownHandler(
        new MouseDownHandler() {
          public void onMouseDown(MouseDownEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenterPush");
          }
        });
    horizontalPanel.add(Advance);

    btnNewButton.setSize("100%", "100%");
    btnNewButton.setStyleName("gwt-ButtonCenter");
    btnNewButton.addMouseOutHandler(
        new MouseOutHandler() {
          public void onMouseOut(MouseOutEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenter");
          }
        });
    btnNewButton.addMouseOverHandler(
        new MouseOverHandler() {
          public void onMouseOver(MouseOverEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenterOver");
          }
        });
    btnNewButton.addMouseDownHandler(
        new MouseDownHandler() {
          public void onMouseDown(MouseDownEvent event) {
            ((Button) event.getSource()).setStyleName("gwt-ButtonCenterPush");
          }
        });
    btnNewButton.addClickHandler(
        new ClickHandler() {

          public void onClick(ClickEvent event) {
            filtro = new ArrayList<TypeClient>();
            if (!AllBoolean) {
              String Token = textBox.getText();
              String[] Words = Token.split(",");
              if (Words.length > 0) {
                Types = MakeWords(Words);
                filtro = FindTypes(Types, ActualState.getReadingActivityCloseCatalog());
                ArrayList<UserClient> Usuarios =
                    FindUsers(Types, ActualState.getReadingactivity().getGroup());
                MainEntryPoint.setFiltro(filtro, Usuarios, Types, new ArrayList<Long>());
                Me.hide();
              }
            } else {
              MainEntryPoint.CleanFilter();
              Me.hide();
            }
          }

          private ArrayList<UserClient> FindUsers(ArrayList<String> types, GroupClient group) {
            ArrayList<UserClient> salida = new ArrayList<UserClient>();
            for (UserClient studentUnit : group.getParticipatingUsers()) {
              testUserIn(studentUnit, types, salida);
            }
            testUserIn(group.getProfessor(), types, salida);
            return salida;
          }

          private void testUserIn(
              UserClient studentUnit, ArrayList<String> types, ArrayList<UserClient> salida) {
            for (String typocandidato : types) {
              if (studentUnit.getFirstName().toUpperCase().contains(typocandidato.toUpperCase()))
                AddSalida(studentUnit, salida);
              if (studentUnit.getLastName().toUpperCase().contains(typocandidato.toUpperCase()))
                AddSalida(studentUnit, salida);
              if (studentUnit
                  .getId()
                  .toString()
                  .toUpperCase()
                  .contains(typocandidato.toUpperCase())) AddSalida(studentUnit, salida);
              if (studentUnit.getEmail().toUpperCase().contains(typocandidato.toUpperCase()))
                AddSalida(studentUnit, salida);
            }
          }

          private void AddSalida(UserClient studentUnit, ArrayList<UserClient> salida) {
            if (!salida.contains(studentUnit)) salida.add(studentUnit);
          }

          private ArrayList<TypeClient> FindTypes(
              ArrayList<String> types, CatalogoClient catalogo) {
            ArrayList<TypeClient> Salida = new ArrayList<TypeClient>();
            for (EntryClient entryUni : catalogo.getEntries()) {
              EvaluaEntry(entryUni, types, Salida);
            }
            return Salida;
          }

          private void EvaluaEntry(
              EntryClient entryUni, ArrayList<String> types, ArrayList<TypeClient> salida) {
            if (entryUni instanceof TypeClient) EvaluaType((TypeClient) entryUni, types, salida);
            else if (entryUni instanceof TypeCategoryClient)
              EvaluaTypeCategory((TypeCategoryClient) entryUni, types, salida);
          }

          private void EvaluaTypeCategory(
              TypeCategoryClient entryUni, ArrayList<String> types, ArrayList<TypeClient> salida) {
            if (existeEn(entryUni, types)) AddHijos(entryUni, salida);
          }

          private void AddHijos(TypeCategoryClient entryUni, ArrayList<TypeClient> salida) {
            for (EntryClient candidato : entryUni.getChildren()) {
              if (candidato instanceof TypeClient) AddASalida((TypeClient) candidato, salida);
              else if (candidato instanceof TypeCategoryClient)
                AddHijos((TypeCategoryClient) candidato, salida);
            }
          }

          private void EvaluaType(
              TypeClient entryUni, ArrayList<String> types, ArrayList<TypeClient> salida) {
            if (existeEn(entryUni, types)) AddASalida(entryUni, salida);
          }

          private void AddASalida(TypeClient entryUni, ArrayList<TypeClient> salida) {
            if (!salida.contains(entryUni)) salida.add(entryUni);
          }

          private boolean existeEn(EntryClient entryUni, ArrayList<String> types) {
            for (String candidato : types) {
              if (candidato.toUpperCase().contains(entryUni.getName().toUpperCase())) return true;
            }
            return false;
          }

          private ArrayList<String> MakeWords(String[] words) {
            ArrayList<String> Salida = new ArrayList<String>();
            for (String SS : words) {
              if (!SS.isEmpty()) Salida.add(SS);
            }
            return Salida;
          }
        });
  }