Class: DFCUI::HtmlDialog

Inherits:
UI::HtmlDialog
  • Object
show all

Overview

扩展版的 UI::HtmlDialog,扩展的方法及功能如下,其余参考原版的 UI::HtmlDialog dfcserver/ruby-api-docs-2017/UI/HtmlDialog.html

注意:所有的 set_ 开头的方法,仅对本次已经显示的窗口有效,窗口关闭后下次打开会恢复默认样式。如果要完全生效,请使用 = 的方法,比如 dlg.caption = “标题”。

Constants:

  • 窗口样式 HtmlDialog#set_style

  • STYLE_UTILITY # 设置为 tool 窗口

  • STYLE_ONLY_CLOSE_BUTTON # 设置为只有关闭按钮的窗口

  • STYLE_NO_BORDER # 设置为无边框窗口

  • 窗口位置 HtmlDialog#set_site

  • SITE_GENERAL # 通常

  • SITE_MINIMIZE # 最小化

  • SITE_MAXIMIZE # 最大化

Examples:

dlg = DFCUI::HtmlDialog.new({
  dialog_title: "Html官网",
  preferences_key: "Html官网",
  scrollable: true,
  resizable: true,
  width: 600,
  height: 400,
  left: 100,
  top: 100,
  style: DFCUI::HtmlDialog::STYLE_NO_BORDER
})
dlg.set_url "http://www.qdtg.com"
dlg.get('ready') do |data, callback|
  callback.call('hello, world!')
end
dlg.show

Instance Method Summary # collapse

Instance Method Details

#add_child_dialog(dialog) ⇒ Object

添加子对话框。当父窗口关闭时,子窗口会被关闭

Examples:

dialog.add_child_dialog(other_dialog)

Parameters:

#captionString

获取窗口标题

Returns:

  • (String)

Version:

  • 2.1.2

#caption=(title) ⇒ String

设置窗口标题

Examples:

dlg.caption = "Hello, world!"

Parameters:

  • title (String)

    标题

Returns:

  • (String)

Version:

  • 2.1.2

#config {|dialog| ... } ⇒ NilClass

配置对话框,主要用于 show_modal 这种会卡住 ruby 的情况

config 应写于 show_modal 之前,用于保证 config 的内容可以正常得到执行

Examples:

dlg.config {|x|
  x.style = DFCUI::HtmlDialog::STYLE_ONLY_CLOSE_BUTTON
  x.set_opacity(200)
  x.set_size(500, 500)
}
dlg.show_modal

Yields:

  • (dialog)

Yield Parameters:

Returns:

  • (NilClass)

Version:

  • 2.1.2

#data_handler=(handler) ⇒ Object

数据处理器,用于配置前端数据接口:skp.listData、skp.readData、skp.writeData

处理器支持两种方式:

1、直接传入 DFC::PathHandler 对象,由它来做数据存储控制

2、传入路径数组(目录名),由 DFC::Path 来做数据存储控制,比如传入 %w[Common test],那么数据目录就是:C:/DFC_BIM/Data/User/Common/test

Examples:

dialog.data_handler = %w[Common test]

Parameters:

#get(url) {|params, callback| ... } ⇒ NilClass

get 路由处理,使用条件是必须加载 vue.js 及 dfccore.js

Examples:

dialog.get('floor/list') do |params, callback|
  puts params
  # 触发前端 js 的回调
  # 成功
  callback.call('hello,world!')
  # 失败(非 200)
  callback.call('hello,world!', 400, '获取xxx失败')
end

// 前端请求 javascript
skp.get('floor/list', '1F', (res) => {
  console.log(res);
});

Parameters:

  • url (String)

    请求地址

Yields:

  • (params, callback)

Yield Parameters:

  • params (Object)

    请求参数,可以为任意类型值

  • callback (DFCUI::RequestCallback)

    响应方法,通过调用 .call 给前端响应内容

Returns:

  • (NilClass)

#handleNilClass, Fixnum

取得窗口句柄

Examples:

dlg.handle

Returns:

  • (NilClass, Fixnum)

Version:

  • 2.1.2

#rect(default = [100, 100, 200, 200]) ⇒ Array<Integer, Integer, Integer, Integer>

取得窗口的 rect

Examples:

dlg.rect

Parameters:

  • default (Array<Integer, Integer, Integer, Integer>) (defaults to: [100, 100, 200, 200])

    默认值,执行失败时返回,[Left, Top, Right, Bottom]

Returns:

  • (Array<Integer, Integer, Integer, Integer>)

    Array [Left, Top, Right, Bottom]

Version:

  • 2.1.2

#set_height(height) ⇒ TrueClass

设置窗口高度

Examples:

dlg.set_height(600)

Parameters:

  • height (Integer)

    高度

Returns:

  • (TrueClass)

Version:

  • 2.5.16

#set_opacity(opacity) ⇒ NilClass

设置透明度

Examples:

dlg.set_opacity(200)

Parameters:

  • opacity (Integer)

    透明度,范围为 0 - 255

Returns:

  • (NilClass)

Version:

  • 2.1.2

#set_site(site) ⇒ Integer

设置窗口位置

Examples:

dlg.set_site(DFCUI::HtmlDialog::SITE_GENERAL)

Parameters:

  • site (Integer)

    位置,常量值

Returns:

  • (Integer)

Version:

  • 2.1.2

#set_style(style) ⇒ Integer

设置窗口样式

Examples:

dlg.set_style(DFCUI::HtmlDialog::STYLE_ONLY_CLOSE_BUTTON)

Parameters:

  • style (Integer)

    样式,常量值

Returns:

  • (Integer)

Version:

  • 2.1.2

#set_visible(state) ⇒ Boolean

设置窗口的显示状态

dialog 必须是已经执行了 show 才可使用。

Examples:

dlg.set_visible(false)

Parameters:

  • state (Boolean)

    显示状态,true 显示窗口,false 隐藏窗口。

Returns:

  • (Boolean)

Version:

  • 2.1.2

#set_width(width) ⇒ TrueClass

设置窗口宽度

Examples:

dlg.set_width(600)

Parameters:

  • width (Integer)

    宽度

Returns:

  • (TrueClass)

Version:

  • 2.5.16

#valid?Boolean

判断窗口是否有效

Examples:

dlg.valid?

Returns:

  • (Boolean)

Version:

  • 2.1.2