Преглед на файлове

Remove splitbuttondropdownview.js and use 'select' button event instead.

Maciej Gołaszewski преди 8 години
родител
ревизия
bfe20a4ae7

+ 3 - 0
packages/ckeditor5-ui/src/dropdown/button/createbuttondropdown.js

@@ -86,6 +86,9 @@ export default function createButtonDropdown( model, locale ) {
 
 	model.buttons.map( view => toolbarView.items.add( view ) );
 
+	// TODO: better:
+	dropdownView.buttonView.delegate( 'execute' ).to( dropdownView.buttonView, 'select' );
+
 	dropdownView.extendTemplate( {
 		attributes: {
 			class: [ 'ck-buttondropdown' ]

+ 2 - 2
packages/ckeditor5-ui/src/dropdown/createsplitbuttondropdown.js

@@ -8,8 +8,8 @@
  */
 
 import SplitButtonView from '../button/splitbuttonview';
-import SplitButtonDropdownView from './splitbuttondropdownview';
 import DropdownPanelView from './dropdownpanelview';
+import DropdownView from './dropdownview';
 
 /**
  * Create a dropdown that have a split button as button.
@@ -24,7 +24,7 @@ export default function createSplitButtonDropdown( model, locale ) {
 	splitButtonView.buttonView.bind( 'tooltip' ).to( model );
 
 	const panelView = new DropdownPanelView( locale );
-	const dropdownView = new SplitButtonDropdownView( locale, splitButtonView, panelView );
+	const dropdownView = new DropdownView( locale, splitButtonView, panelView );
 
 	// Extend template to hide arrow from dropdown.
 	// TODO: enable this on normal button instead of hiding it

+ 1 - 1
packages/ckeditor5-ui/src/dropdown/dropdownview.js

@@ -158,7 +158,7 @@ export default class DropdownView extends View {
 		super.render();
 
 		// Toggle the the dropdown when it's button has been clicked.
-		this.listenTo( this.buttonView, 'execute', () => {
+		this.listenTo( this.buttonView, 'select', () => {
 			this.isOpen = !this.isOpen;
 		} );
 

+ 3 - 0
packages/ckeditor5-ui/src/dropdown/list/createlistdropdown.js

@@ -65,6 +65,9 @@ export default function createListDropdown( model, locale ) {
 
 	dropdownView.panelView.children.add( listView );
 
+	// TODO: better:
+	dropdownView.buttonView.delegate( 'execute' ).to( dropdownView.buttonView, 'select' );
+
 	closeDropdownOnBlur( dropdownView );
 	closeDropdownOnExecute( dropdownView, listView.items );
 	focusDropdownContentsOnArrows( dropdownView, listView );

+ 0 - 31
packages/ckeditor5-ui/src/dropdown/splitbuttondropdownview.js

@@ -1,31 +0,0 @@
-/**
- * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
-
-/**
- * @module ui/dropdown/splitbuttondropdownview
- */
-
-import DropdownView from './dropdownview';
-
-/**
- * The split button dropdown view class.
- *
- * @extends module:ui/view~View
- */
-export default class SplitButtonDropdownView extends DropdownView {
-	/**
-	 * @inheritDoc
-	 */
-	render() {
-		super.render();
-
-		// Disable default panel open on "execute"
-		this.stopListening( this.buttonView, 'execute' );
-
-		this.listenTo( this.buttonView, 'select', () => {
-			this.isOpen = !this.isOpen;
-		} );
-	}
-}

+ 4 - 4
packages/ckeditor5-ui/tests/dropdown/dropdownview.js

@@ -71,7 +71,7 @@ describe( 'DropdownView', () => {
 		} );
 
 		describe( 'bindings', () => {
-			describe( 'view#isOpen to view.buttonView#execute', () => {
+			describe( 'view#isOpen to view.buttonView#select', () => {
 				it( 'is activated', () => {
 					const values = [];
 
@@ -79,9 +79,9 @@ describe( 'DropdownView', () => {
 						values.push( view.isOpen );
 					} );
 
-					view.buttonView.fire( 'execute' );
-					view.buttonView.fire( 'execute' );
-					view.buttonView.fire( 'execute' );
+					view.buttonView.fire( 'select' );
+					view.buttonView.fire( 'select' );
+					view.buttonView.fire( 'select' );
 
 					expect( values ).to.have.members( [ true, false, true ] );
 				} );