Commit 85df2bf9 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

git-svn-id:...

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@54950 954022d7-b5bf-4e40-9824-e11837661b57
parent 3643cf16
......@@ -9,9 +9,9 @@ std::wostream & operator << (std::wostream & _Wostream, const chart_label_arrang
{
switch(_Val.get_type())
{
case chart_label_arrangement::side_by_side: _Wostream << L"side_by_side"; break;
case chart_label_arrangement::stagger_even: _Wostream << L"stagger_even"; break;
case chart_label_arrangement::stagger_odd : _Wostream << L"stagger_odd"; break;
case chart_label_arrangement::side_by_side: _Wostream << L"side_by_side"; break;
case chart_label_arrangement::stagger_even: _Wostream << L"stagger_even"; break;
case chart_label_arrangement::stagger_odd : _Wostream << L"stagger_odd"; break;
}
return _Wostream;
}
......
......@@ -29,8 +29,7 @@ public:
void process_master(office_element_ptr root );
void process_office(office_element_ptr root );
//std::wstring get_current_table_name() const;
//void start_cell(const std::wstring & formula,
// size_t columnsSpanned,
// size_t rowsSpanned);
......
......@@ -28,7 +28,24 @@ const ods_table_state & ods_table_context::state() const
void ods_table_context::start_table(office_element_ptr & elm, std::wstring & name)
{
table_state_list_.push_back( ods_table_state(context_, elm) );
state().set_name(name);
std::wstring style_name_new = L"ta" + boost::lexical_cast<std::wstring>(table_state_list_.size());
office_element_ptr & style = context_.styles_context().add_or_find(style_name_new, style_family::Table, true);
style->create_child_element(L"style", L"table-properties");
state().set_table_style(style);
// , - master-page c page layout
// , .. . ..
//todooo
}
void ods_table_context::end_table()
......
......@@ -23,8 +23,6 @@ public:
void start_table(office_element_ptr & elm,std::wstring & name);
void end_table();
//std::wstring get_current_table_name() const;
//void start_cell(const std::wstring & formula,
// size_t columnsSpanned,
// size_t rowsSpanned);
......
......@@ -5,29 +5,41 @@
#include "ods_conversion_context.h"
#include "table.h"
#include "styles.h"
namespace cpdoccore {
namespace odf {
ods_table_state::ods_table_state(ods_conversion_context & Context, office_element_ptr & elm): context_(Context)
{
office_element_ = (table_table*)dynamic_cast<table_table*>(elm.get());
office_table_ = (table_table*)dynamic_cast<table_table*>(elm.get());
}
void ods_table_state::set_name(std::wstring name)
{
tableName_ = name;
office_element_->table_table_attlist_.table_name_ = name;
office_table_->table_table_attlist_.table_name_ = name;
}
void ods_table_state::convert()
{
if (office_element_ == NULL)return;
if (office_table_ == NULL)return;
//ïîñëåäíèå øòðèõè???
//???
}
void ods_table_state::set_table_style(office_element_ptr & elm)
{
office_table_style_ = (style*)dynamic_cast<style*>(elm.get());
if (!office_table_style_)return;
office_table_->table_table_attlist_.table_style_name_ = office_table_style_->style_name_;
// ()
}
}
}
......@@ -18,6 +18,7 @@ namespace odf {
class ods_conversion_context;
class table_table;
class style;
class ods_table_state
{
......@@ -25,6 +26,9 @@ public:
ods_table_state(ods_conversion_context & Context, office_element_ptr & elm);
void set_name(std::wstring);
void set_table_style(office_element_ptr & style);
// std::wstring current_style() const { return table_style_; }
// void start_column(unsigned int repeated, const std::wstring & defaultCellStyleName);
// void start_row(const std::wstring & StyleName, const std::wstring & defaultCellStyleName);
......@@ -68,8 +72,6 @@ public:
// void serialize_hyperlinks(std::wostream & _Wostream);
// void dump_rels_hyperlinks(rels & Rels);
std::wstring get_current_table_name() const { return tableName_; }
//struct _group_row
//{
// bool enabled;
......@@ -81,7 +83,8 @@ public:
private:
ods_conversion_context & context_;
table_table* office_element_;
table_table* office_table_;
style* office_table_style_;
//std::wstring table_style_;
std::wstring tableName_;
......
......@@ -42,6 +42,8 @@ public:
const odf_conversion_context * getContext() const { return context_; }
virtual void add_child_element(office_element_ptr & child) = 0;
virtual void create_child_element( const std::wstring & Ns, const std::wstring & Name)=0;
void set_root(bool root){is_root_ = root;}
////////////////////////
......
......@@ -14,9 +14,9 @@
#include "style_text_properties.h"
#include "style_paragraph_properties.h"
#include "style_table_properties.h"
#include "style_graphic_properties.h"
#include "style_chart_properties.h"
//#include "style_graphic_properties.h"
//#include "style_chart_properties.h"
//#include "style_presentation.h"
//#include "odfcontext.h"
......@@ -40,20 +40,20 @@ style_paragraph_properties * style_content::get_style_paragraph_properties() con
return dynamic_cast<style_paragraph_properties *>(style_paragraph_properties_.get());
}
//style_graphic_properties * style_content::get_style_graphic_properties() const
//{
// return dynamic_cast<style_graphic_properties *>(style_graphic_properties_.get());
//}
style_graphic_properties * style_content::get_style_graphic_properties() const
{
return dynamic_cast<style_graphic_properties *>(style_graphic_properties_.get());
}
style_table_properties * style_content::get_style_table_properties() const
{
return dynamic_cast<style_table_properties *>(style_table_properties_.get());
}
//
//style_section_properties * style_content::get_style_section_properties() const
//{
// return dynamic_cast<style_section_properties *>(style_section_properties_.get());
//}
//
style_section_properties * style_content::get_style_section_properties() const
{
return dynamic_cast<style_section_properties *>(style_section_properties_.get());
}
style_table_cell_properties * style_content::get_style_table_cell_properties() const
{
return dynamic_cast<style_table_cell_properties *>(style_table_cell_properties_.get());
......@@ -68,11 +68,11 @@ style_table_column_properties * style_content::get_style_table_column_properties
{
return dynamic_cast<style_table_column_properties *>(style_table_column_properties_.get());
}
//
//style_chart_properties * style_content::get_style_chart_properties() const
//{
// return dynamic_cast<style_chart_properties *>(style_chart_properties_.get());
//}
style_chart_properties * style_content::get_style_chart_properties() const
{
return dynamic_cast<style_chart_properties *>(style_chart_properties_.get());
}
//style_drawing_page_properties * style_content::get_style_drawing_page_properties() const
//{
// return dynamic_cast<style_drawing_page_properties *>(style_drawing_page_properties_.get());
......@@ -147,6 +147,20 @@ void style_content::create_child_element( const std::wstring & Ns, const ::std::
not_applicable_element(L"style-content", Ns, Name);
}
}
void style_content::serialize(std::wostream & strm)
{
if (style_text_properties_) style_text_properties_->serialize(strm);
if (style_paragraph_properties_)style_paragraph_properties_->serialize(strm);
if (style_section_properties_) style_section_properties_->serialize(strm);
if (style_ruby_properties_) style_ruby_properties_->serialize(strm);
if (style_table_properties_) style_table_properties_->serialize(strm);
if (style_table_column_properties_)style_table_column_properties_->serialize(strm);
if (style_table_row_properties_)style_table_row_properties_->serialize(strm);
if (style_chart_properties_) style_chart_properties_->serialize(strm);
if (style_graphic_properties_) style_graphic_properties_->serialize(strm);
if (style_table_cell_properties_)style_table_cell_properties_->serialize(strm);
if (style_drawing_page_properties_)style_drawing_page_properties_->serialize(strm);
}
// style:default-style
//////////////////////////////////////////////////////////////////////////////////////////////////
......@@ -162,7 +176,17 @@ void default_style::add_child_element(office_element_ptr & child)
{
style_content_.add_child_element(child);
}
void default_style::serialize(std::wostream & strm)
{
CP_XML_WRITER(strm)
{
CP_XML_NODE_SIMPLE()
{
CP_XML_ATTR(L"style-family", style_family_);
style_content_.serialize(CP_XML_STREAM());
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * draw_fill_image::ns = L"draw";
const wchar_t * draw_fill_image::name = L"fill-image";
......@@ -225,7 +249,28 @@ void style::add_child_element(office_element_ptr & child)
else
style_content_.add_child_element(child);
}
void style::serialize(std::wostream & strm)
{
CP_XML_WRITER(strm)
{
CP_XML_NODE_SIMPLE()
{
CP_XML_ATTR_OPT(L"style:default-outline-level", style_default_outline_level_);
CP_XML_ATTR_OPT(L"style:parent-style-name", style_parent_style_name_);
CP_XML_ATTR_OPT(L"style:next-style-name", style_next_style_name_);
CP_XML_ATTR_OPT(L"style:list-style-name", style_list_style_name_);
CP_XML_ATTR(L"style:auto-update", style_auto_update_);
CP_XML_ATTR_OPT(L"style:data-style-name", style_data_style_name_);
CP_XML_ATTR_OPT(L"style:class", style_class_);
CP_XML_ATTR_OPT(L"style:master-page-name", style_master_page_name_);
CP_XML_ATTR_OPT(L"style:display-name", style_display_name_);
CP_XML_ATTR(L"style:family", style_family_);
CP_XML_ATTR(L"style:name", style_name_);
style_content_.serialize(CP_XML_STREAM());
}
}
}
// styles & draw_styles
//////////////////////////////////////////////////////////////////////////////////////////////////
......
......@@ -58,6 +58,7 @@ class style_content : noncopyable
public:
void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name, odf_conversion_context * Context);
void add_child_element(office_element_ptr & child);
void serialize(std::wostream & strm);
style_text_properties * get_style_text_properties() const;
style_paragraph_properties * get_style_paragraph_properties() const;
......@@ -104,7 +105,7 @@ public:
virtual void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element(office_element_ptr & child);
virtual void serialize(std::wostream & strm){}
virtual void serialize(std::wostream & strm);
style_family style_family_;
......@@ -261,7 +262,7 @@ public:
virtual void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element(office_element_ptr & child);
virtual void serialize(std::wostream & strm){}
virtual void serialize(std::wostream & strm);
// attr
std::wstring style_name_;
......
......@@ -91,7 +91,7 @@ void table_table::serialize(std::wostream & _Wostream)
const wchar_t * table_table_column::ns = L"table";
const wchar_t * table_table_column::name = L"table-column";
void table_table_column::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name, odf_conversion_context * Context)
void table_table_column::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
CP_NOT_APPLICABLE_ELM();
}
......@@ -144,11 +144,12 @@ void table_columns::create_child_element( const ::std::wstring & Ns, const ::std
// table-columns-no-group
//////////////////////////////////////////////////////////////////////////////////////////////////
table_columns_no_group::table_columns_no_group() : was_header_(false)
table_columns_no_group::table_columns_no_group(odf_conversion_context * _Context) : was_header_(false)
{
Context = _Context;
};
void table_columns_no_group::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name, odf_conversion_context * Context)
void table_columns_no_group::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
if (CP_CHECK_NAME(L"table", L"table-columns") || CP_CHECK_NAME(L"table", L"table-column"))
{
......@@ -167,9 +168,9 @@ void table_columns_no_group::create_child_element( const ::std::wstring & Ns, c
not_applicable_element(L"table-columns-no-group", Ns, Name);
}
_CP_PTR(table_columns_no_group) table_columns_no_group::create()
_CP_PTR(table_columns_no_group) table_columns_no_group::create(odf_conversion_context * Context)
{
return boost::make_shared<table_columns_no_group>();
return boost::make_shared<table_columns_no_group>(Context);
}
......@@ -203,8 +204,9 @@ void table_columns_and_groups::create_child_element(const ::std::wstring & Ns, c
CP_CHECK_NAME(L"table", L"table-column") ||
CP_CHECK_NAME(L"table", L"table-header-columns"))
{
_CP_PTR(table_columns_no_group) elm = table_columns_no_group::create();
elm->create_child_element(Ns, Name, Context);
_CP_PTR(table_columns_no_group) elm = table_columns_no_group::create(Context);
elm->create_child_element(Ns, Name);
content_.push_back(elm);
}
else
......@@ -313,16 +315,17 @@ void table_rows::create_child_element(const ::std::wstring & Ns, const ::std::ws
const wchar_t * table_rows_no_group::ns = L"table";
const wchar_t * table_rows_no_group::name = L"table-rows-no-group";
_CP_PTR(table_rows_no_group) table_rows_no_group::create()
_CP_PTR(table_rows_no_group) table_rows_no_group::create(odf_conversion_context * Context)
{
return boost::make_shared<table_rows_no_group>();
return boost::make_shared<table_rows_no_group>(Context);
}
table_rows_no_group::table_rows_no_group() : was_header_(false)
table_rows_no_group::table_rows_no_group(odf_conversion_context * _Context) : was_header_(false)
{
Context = _Context;
};
void table_rows_no_group::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name, odf_conversion_context * Context)
void table_rows_no_group::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
if (CP_CHECK_NAME(L"table", L"table-rows") || CP_CHECK_NAME(L"table", L"table-row"))
{
......@@ -355,8 +358,8 @@ void table_rows_and_groups::create_child_element( const ::std::wstring & Ns, con
}
else if (L"table" == Ns && (L"table-rows" == Name || L"table-row" == Name || L"table-header-rows" == Name) )
{
_CP_PTR(table_rows_no_group) elm = table_rows_no_group::create();
elm->create_child_element(Ns, Name, Context);
_CP_PTR(table_rows_no_group) elm = table_rows_no_group::create(Context);
elm->create_child_element(Ns, Name);
content_.push_back(elm);
}
else
......
......@@ -149,22 +149,24 @@ public:
CPDOCCORE_DEFINE_VISITABLE();
public:
table_columns_no_group();
table_columns_no_group(odf_conversion_context * _Context);
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name, odf_conversion_context * Context);
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name/*, odf_conversion_context * Context*/);
virtual void add_child_element( office_element_ptr & child_element){}
virtual void serialize(std::wostream & _Wostream){}
static _CP_PTR(table_columns_no_group) create();
public:
static _CP_PTR(table_columns_no_group) create(odf_conversion_context * Context);
table_columns table_columns_1_;
bool was_header_;
office_element_ptr table_table_header_columns_;
table_columns table_columns_2_;
private:
odf_conversion_context * Context;
};
......@@ -210,7 +212,7 @@ public:
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name, odf_conversion_context * Context);
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element){}
virtual void serialize(std::wostream & _Wostream){}
......@@ -480,14 +482,14 @@ public:
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeTableTableRowNoGroup;
static _CP_PTR(table_rows_no_group) create();
static _CP_PTR(table_rows_no_group) create(odf_conversion_context * Context);
CPDOCCORE_DEFINE_VISITABLE();
public:
table_rows_no_group();
table_rows_no_group(odf_conversion_context * Context);
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name, odf_conversion_context * Context);
virtual void create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element){}
virtual void serialize(std::wostream & _Wostream){}
......@@ -499,6 +501,8 @@ public:
office_element_ptr table_table_header_rows_;
table_rows table_rows_2_;
private:
odf_conversion_context * Context;
};
......
......@@ -171,13 +171,14 @@ odf::office_element_ptr XlsxConverter::convert(OOX::Spreadsheet::CXfs * cell_sty
{
OOX::Spreadsheet::CStyles * xlsx_styles = xlsx_document->GetStyles();
int id_parent = cell_style->m_oXfId->GetValue(); //parent
int fill_id = cell_style->m_oFillId->GetValue();
int numFmt_id = cell_style->m_oNumFmtId->GetValue();
int font_id = cell_style->m_oFontId->GetValue();
int border_id = cell_style->m_oBorderId->GetValue();
int id_parent = cell_style->m_oXfId.GetPointer() ? cell_style->m_oXfId->GetValue() : -1; //parent
int fill_id = cell_style->m_oFillId.GetPointer() ? cell_style->m_oFillId->GetValue() : -1;
int numFmt_id = cell_style->m_oNumFmtId.GetPointer() ? cell_style->m_oNumFmtId->GetValue() : -1;
int font_id = cell_style->m_oFontId.GetPointer() ? cell_style->m_oFontId->GetValue() : -1;
int border_id = cell_style->m_oBorderId.GetPointer() ? cell_style->m_oBorderId->GetValue() : -1;
odf::office_element_ptr elm_style = ods_context->styles_context().add_or_find(L"" ,odf::style_family::TableCell, true, oox_id);
std::wstring cell_style_name_new = L"ce" + boost::lexical_cast<std::wstring>(oox_id+1);//
odf::office_element_ptr elm_style = ods_context->styles_context().add_or_find(cell_style_name_new ,odf::style_family::TableCell, true, oox_id);
// c - () - oox
convert(xlsx_styles->m_oFonts->m_arrItems[font_id], elm_style);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment