private function show_edit_form()
    {
        /*
         * The user created the entry, so show them the form!
         */
        if (self::$allowed_edit === false) {
            /*
             * TODO add error log message here 
             */
            return false;
        }
        ob_start();
        $form = self::$form;
        $lead = self::$lead;
        $form_id = $form['id'];
        $field_values = array();
        $is_postback = false;
        /*
         * Validate form, if submitted 
         */
        if (isset($_POST['gform_submit'])) {
            $is_postback = true;
            $is_valid = $this->validate($form, $field_values);
            if ($is_valid) {
                /*
                 * TODO, save the form and show an update message 
                 */
                if ($this->update_entry($form, $lead)) {
                    GFPDFEWidgetsAndShortcode_PDFDisplay::$message = __('Your entry and PDF(s) has been successfully updated.', 'pdfextended');
                } else {
                    GFPDFEWidgetsAndShortcode_PDFDisplay::$error = __('There was a problem updating your entry. Please try again.', 'pdfextended');
                }
                return false;
            }
        }
        ?>

		<div id="gform_wrapper_<?php 
        echo self::$form['id'];
        ?>
" class='gform_wrapper'>
			<form id="gform_<?php 
        echo self::$form['id'];
        ?>
" method="post">
				<div id='gform_page_<?php 
        echo self::$form['id'];
        ?>
_1'>
	                 <div class='gform_page_fields'>	

						<?php 
        if ($is_postback && !$is_valid) {
            $validation_message = "<div class='validation_error'>" . __("There was a problem with your submission.", "gravityforms") . " " . __("Errors have been highlighted below.", "gravityforms") . "</div>";
            echo apply_filters("gform_validation_message_{$form["id"]}", apply_filters("gform_validation_message", $validation_message, $form), $form);
        }
        ?>

	                 	<ul id='gform_fields_<?php 
        echo self::$form['id'];
        ?>
' class='gform_fields'>
				        					               
				                    <?php 
        foreach ($form["fields"] as $field) {
            $field_id = $field["id"];
            /*
             * If $field_id should be hidden...
             */
            if (in_array($field_id, $this->atts['hidden_fields'])) {
                continue;
            }
            $field["conditionalLogicFields"] = GFFormDisplay::get_conditional_logic_fields($form, $field["id"]);
            $input_type = RGFormsModel::get_input_type($field);
            $error_class = rgget("failed_validation", $field) ? "gfield_error" : "";
            $admin_only_class = rgget("adminOnly", $field) ? "field_admin_only" : "";
            $selectable_class = IS_ADMIN ? "selectable" : "";
            $hidden_class = in_array($input_type, array("hidden", "hiddenproduct")) ? "gform_hidden" : "";
            $section_class = $field["type"] == "section" ? "gsection" : "";
            $page_class = $field["type"] == "page" ? "gpage" : "";
            $html_block_class = $field["type"] == "html" ? "gfield_html" : "";
            $html_formatted_class = $field["type"] == "html" && !IS_ADMIN && !rgget("disableMargins", $field) ? "gfield_html_formatted" : "";
            $html_no_follows_desc_class = $field["type"] == "html" && !IS_ADMIN && !self::prev_field_has_description(self::$form, $field["id"]) ? "gfield_no_follows_desc" : "";
            $calculation_class = RGFormsModel::get_input_type($field) == 'number' && GFCommon::has_field_calculation($field) ? 'gfield_calculation' : '';
            $calculation_class = RGFormsModel::get_input_type($field) == 'calculation' ? 'gfield_calculation' : '';
            $product_suffix = '_' . self::$form['id'] . '_' . rgget("productField", $field);
            $option_class = $field["type"] == "option" ? "gfield_price gfield_price{$product_suffix} gfield_option{$product_suffix}" : "";
            $quantity_class = $field["type"] == "quantity" ? "gfield_price gfield_price{$product_suffix} gfield_quantity{$product_suffix}" : "";
            $shipping_class = $field["type"] == "shipping" ? "gfield_price gfield_shipping gfield_shipping_{$form["id"]}" : "";
            $product_class = $field["type"] == "product" ? "gfield_price gfield_price_{$form["id"]}_{$field["id"]} gfield_product_{$form["id"]}_{$field["id"]}" : "";
            $hidden_product_class = $input_type == "hiddenproduct" ? "gfield_hidden_product" : "";
            $donation_class = $field["type"] == "donation" ? "gfield_price gfield_price_{$form["id"]}_{$field["id"]} gfield_donation_{$form["id"]}_{$field["id"]}" : "";
            $required_class = rgar($field, "isRequired") ? "gfield_contains_required" : "";
            $creditcard_warning_class = $input_type == "creditcard" && !GFCommon::is_ssl() ? "gfield_creditcard_warning" : "";
            $custom_class = IS_ADMIN ? "" : rgget("cssClass", $field);
            $css_class = "{$selectable_class} gfield {$error_class} {$section_class} {$admin_only_class} {$custom_class} {$hidden_class} {$html_block_class} {$html_formatted_class} {$html_no_follows_desc_class} {$option_class} {$quantity_class} {$product_class} {$donation_class} {$shipping_class} {$page_class} {$required_class} {$hidden_product_class} {$creditcard_warning_class} {$calculation_class}";
            $css_class = apply_filters("gform_field_css_class_" . self::$form["id"], apply_filters("gform_field_css_class", trim($css_class), $field, self::$form), $field, self::$form);
            $style = !empty($form) && !IS_ADMIN && RGFormsModel::is_field_hidden(self::$form, $field, $field_values) ? "style='display:none;'" : "";
            switch (RGFormsModel::get_input_type($field)) {
                case "captcha":
                case "html":
                case "password":
                case "product":
                case "coupon":
                case "quantity":
                case "shipping":
                case "donation":
                case "total":
                case "singleproduct":
                case "hiddenproduct":
                case "singleshipping":
                case "creditcard":
                case "page":
                case "post_image":
                case "fileupload":
                    //ignore certain fields
                    continue;
                    break;
                default:
                    if (isset($field['productField']) && (int) $field['productField'] > 0 || $field['type'] == 'shipping') {
                        continue;
                    }
                    /*
                     * Ensure our restricted field values stay the same (as they aren't push through the $_POST data)
                     */
                    if (in_array($field_id, $this->atts['restricted_fields'])) {
                        $value = RGFormsModel::get_lead_field_value($lead, $field);
                    } else {
                        /*
                         * Check if we have POST data, or whether we pull the details from the entry itself 
                         * This is useful when the validation fails
                         */
                        $value = $is_postback ? RGFormsModel::get_field_value($field) : RGFormsModel::get_lead_field_value($lead, $field);
                    }
                    $id = "field_" . $form['id'] . "_" . $field_id;
                    /* $content = " <li id='{$id}' class='$css_class' $style><label class='detail-label'>" . esc_html(GFCommon::get_label($field)) . "</label>" .
                    				                                           GFCommon::get_field_input($field, $value, $lead["id"], $form['id']) . "</li>";
                    
                    				                                $content = apply_filters("gform_field_content", $content, $field, $value, self::$lead["id"], self::$form["id"]);*/
                    //$content = "<li id='{$id}' class='$css_class' $style>" . GFFormDisplay::get_field_content($field, $value, true, $form['id']) . '</li>';
                    $field_content = GFFormDisplay::get_field_content($field, $value, true, $form['id']);
                    $field_container = "<li id='{$id}' class='{$css_class}' {$style}>{FIELD_CONTENT}</li>";
                    $field_container = apply_filters('gform_field_container', $field_container, $field, $form, $css_class, $style, $field_content);
                    $field_container = apply_filters("gform_field_container_{$form['id']}", $field_container, $field, $form, $css_class, $style, $field_content);
                    $field_container = apply_filters("gform_field_container_{$form['id']}_{$field['id']}", $field_container, $field, $form, $css_class, $style, $field_content);
                    $field_markup = str_replace('{FIELD_CONTENT}', $field_content, $field_container);
                    if (in_array($field_id, $this->atts['restricted_fields'])) {
                        $field_markup = str_replace('<input', '<input disabled', $field_markup);
                        $field_markup = str_replace('<textarea', '<textarea disabled', $field_markup);
                    }
                    echo $field_markup;
                    break;
            }
        }
        $field_values_str = is_array($field_values) ? http_build_query($field_values) : $field_values;
        ?>
				              

						            <input type='hidden' class='gform_hidden' name='is_submit_<?php 
        echo $form['id'];
        ?>
' value='1' />
						            <input type='hidden' class='gform_hidden' name='gform_submit' value='<?php 
        echo $form['id'];
        ?>
' />
						            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='<?php 
        echo esc_attr(GFFormsModel::get_form_unique_id($form['id']));
        ?>
' />
						            <input type='hidden' class='gform_hidden' name='state_<?php 
        echo $form['id'];
        ?>
' value='<?php 
        GFFormDisplay::get_state($form, $field_values);
        ?>
' />						            
						            <input type='hidden' name='gform_field_values' value='<?php 
        echo esc_attr($field_values_str);
        ?>
' />					

				                    <?php 
        $button_input = self::get_form_button($form["id"], "gform_submit_button_{$form["id"]}", $form["button"], __("Submit", "gravityforms"), "button gform_button", __("Submit", "gravityforms"));
        echo $button_input;
        ?>
				         	
				         	</ul>
				        </div>
				    </div>
			</form>				    
         </div>

        <?php 
        $html = ob_get_contents();
        ob_end_clean();
        return $html;
    }
 private static function set_form_object($form_id)
 {
     self::$form = GFAPI::get_form($form_id);
     if (is_wp_error(self::$form)) {
         /*
          * TODO: Log the error and return nothing 
          */
         return false;
     }
     /*
      * Process our 'fields' into ID => VALUE array elements 
      */
     foreach (self::$form['fields'] as $f) {
         self::$fields[$f['id']] = $f;
     }
     return true;
 }