@Override
    public Object registeringGUI() {
        long prodId;
        Calendar initDate = Calendar.getInstance(), 
                 finalDate = Calendar.getInstance();
        
        while(true){
            try{
                prodId = Long.parseLong(guiImpl.requestData("ID do produto:"));
                break;
            }catch(NumberFormatException e){
                GUIAbsTemplate.operationFailedGUI("ID inválido.");
            }
        }
        int day, month, year;
        while(true){
            try{
                day = Integer.parseInt(guiImpl.requestData("Data de início(dia):"));
                month =  Integer.parseInt(guiImpl.requestData("Data de início(mês):"));
                year = Integer.parseInt(guiImpl.requestData("Data de início(ano):"));
                initDate.set(year, month, day);
                break;
            }catch(Exception e){
                GUIAbsTemplate.operationFailedGUI("Data inválida.");
            }
        }
        while(true){
            try{
                day = Integer.parseInt(guiImpl.requestData("Data de término(dia):"));
                month =  Integer.parseInt(guiImpl.requestData("Data de término(mês):"));
                year = Integer.parseInt(guiImpl.requestData("Data de término(ano):"));
                finalDate.set(year, month, day);
                break;
            }catch(Exception e){
                GUIAbsTemplate.operationFailedGUI("Data inválida.");
            }
        }
        
        return new PublicSale(prodId, initDate, finalDate);
    }